فهرست منبع

libceph: replace ceph_monc_request_next_osdmap()

... with a wrapper around maybe_request_map() - no need for two
osdmap-specific functions.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Ilya Dryomov 9 سال پیش
والد
کامیت
7cca78c9dc
5فایلهای تغییر یافته به همراه9 افزوده شده و 16 حذف شده
  1. 1 1
      drivers/block/rbd.c
  2. 0 1
      include/linux/ceph/mon_client.h
  3. 1 0
      include/linux/ceph/osd_client.h
  4. 0 14
      net/ceph/mon_client.c
  5. 7 0
      net/ceph/osd_client.c

+ 1 - 1
drivers/block/rbd.c

@@ -4902,7 +4902,7 @@ again:
 			return ret;
 			return ret;
 
 
 		if (rbdc->client->osdc.osdmap->epoch < newest_epoch) {
 		if (rbdc->client->osdc.osdmap->epoch < newest_epoch) {
-			ceph_monc_request_next_osdmap(&rbdc->client->monc);
+			ceph_osdc_maybe_request_map(&rbdc->client->osdc);
 			(void) ceph_monc_wait_osdmap(&rbdc->client->monc,
 			(void) ceph_monc_wait_osdmap(&rbdc->client->monc,
 						     newest_epoch,
 						     newest_epoch,
 						     opts->mount_timeout);
 						     opts->mount_timeout);

+ 0 - 1
include/linux/ceph/mon_client.h

@@ -128,7 +128,6 @@ bool ceph_monc_want_map(struct ceph_mon_client *monc, int sub, u32 epoch,
 void ceph_monc_got_map(struct ceph_mon_client *monc, int sub, u32 epoch);
 void ceph_monc_got_map(struct ceph_mon_client *monc, int sub, u32 epoch);
 void ceph_monc_renew_subs(struct ceph_mon_client *monc);
 void ceph_monc_renew_subs(struct ceph_mon_client *monc);
 
 
-extern void ceph_monc_request_next_osdmap(struct ceph_mon_client *monc);
 extern int ceph_monc_wait_osdmap(struct ceph_mon_client *monc, u32 epoch,
 extern int ceph_monc_wait_osdmap(struct ceph_mon_client *monc, u32 epoch,
 				 unsigned long timeout);
 				 unsigned long timeout);
 
 

+ 1 - 0
include/linux/ceph/osd_client.h

@@ -381,6 +381,7 @@ extern int ceph_osdc_wait_request(struct ceph_osd_client *osdc,
 extern void ceph_osdc_sync(struct ceph_osd_client *osdc);
 extern void ceph_osdc_sync(struct ceph_osd_client *osdc);
 
 
 extern void ceph_osdc_flush_notifies(struct ceph_osd_client *osdc);
 extern void ceph_osdc_flush_notifies(struct ceph_osd_client *osdc);
+void ceph_osdc_maybe_request_map(struct ceph_osd_client *osdc);
 
 
 extern int ceph_osdc_readpages(struct ceph_osd_client *osdc,
 extern int ceph_osdc_readpages(struct ceph_osd_client *osdc,
 			       struct ceph_vino vino,
 			       struct ceph_vino vino,

+ 0 - 14
net/ceph/mon_client.c

@@ -384,20 +384,6 @@ void ceph_monc_renew_subs(struct ceph_mon_client *monc)
 }
 }
 EXPORT_SYMBOL(ceph_monc_renew_subs);
 EXPORT_SYMBOL(ceph_monc_renew_subs);
 
 
-/*
- * Register interest in the next osdmap
- */
-void ceph_monc_request_next_osdmap(struct ceph_mon_client *monc)
-{
-	dout("%s have %u\n", __func__, monc->subs[CEPH_SUB_OSDMAP].have);
-	mutex_lock(&monc->mutex);
-	if (__ceph_monc_want_map(monc, CEPH_SUB_OSDMAP,
-				 monc->subs[CEPH_SUB_OSDMAP].have + 1, false))
-		__send_subscribe(monc);
-	mutex_unlock(&monc->mutex);
-}
-EXPORT_SYMBOL(ceph_monc_request_next_osdmap);
-
 /*
 /*
  * Wait for an osdmap with a given epoch.
  * Wait for an osdmap with a given epoch.
  *
  *

+ 7 - 0
net/ceph/osd_client.c

@@ -3869,6 +3869,13 @@ void ceph_osdc_flush_notifies(struct ceph_osd_client *osdc)
 }
 }
 EXPORT_SYMBOL(ceph_osdc_flush_notifies);
 EXPORT_SYMBOL(ceph_osdc_flush_notifies);
 
 
+void ceph_osdc_maybe_request_map(struct ceph_osd_client *osdc)
+{
+	down_read(&osdc->lock);
+	maybe_request_map(osdc);
+	up_read(&osdc->lock);
+}
+EXPORT_SYMBOL(ceph_osdc_maybe_request_map);
 
 
 /*
 /*
  * init, shutdown
  * init, shutdown