]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
krbd: factor out enumerate_devices()
authorIlya Dryomov <idryomov@gmail.com>
Thu, 7 Sep 2017 14:05:20 +0000 (16:05 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Sun, 10 Sep 2017 18:01:31 +0000 (20:01 +0200)
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
src/krbd.cc

index 7c5ade3dcec0933e9124179b58b37255c6468444..50292c18ff2d4568e55bee4747f315b001bb4d15 100644 (file)
@@ -376,38 +376,50 @@ out_enm:
   return r;
 }
 
-static int spec_to_devno_and_krbd_id(struct udev *udev, const char *pool,
-                                     const char *image, const char *snap,
-                                     dev_t *pdevno, string *pid)
+static int enumerate_devices(struct udev_enumerate *enm, const char *pool,
+                             const char *image, const char *snap)
 {
-  struct udev_enumerate *enm;
-  struct udev_list_entry *l;
-  struct udev_device *dev;
-  unsigned int maj, min = 0;
-  string err;
   int r;
 
-  enm = udev_enumerate_new(udev);
-  if (!enm)
-    return -ENOMEM;
-
   r = udev_enumerate_add_match_subsystem(enm, "rbd");
   if (r < 0)
-    goto out_enm;
+    return r;
 
   r = udev_enumerate_add_match_sysattr(enm, "pool", pool);
   if (r < 0)
-    goto out_enm;
+    return r;
 
   r = udev_enumerate_add_match_sysattr(enm, "name", image);
   if (r < 0)
-    goto out_enm;
+    return r;
 
   r = udev_enumerate_add_match_sysattr(enm, "current_snap", snap);
   if (r < 0)
-    goto out_enm;
+    return r;
 
   r = udev_enumerate_scan_devices(enm);
+  if (r < 0)
+    return r;
+
+  return 0;
+}
+
+static int spec_to_devno_and_krbd_id(struct udev *udev, const char *pool,
+                                     const char *image, const char *snap,
+                                     dev_t *pdevno, string *pid)
+{
+  struct udev_enumerate *enm;
+  struct udev_list_entry *l;
+  struct udev_device *dev;
+  unsigned int maj, min = 0;
+  string err;
+  int r;
+
+  enm = udev_enumerate_new(udev);
+  if (!enm)
+    return -ENOMEM;
+
+  r = enumerate_devices(enm, pool, image, snap);
   if (r < 0)
     goto out_enm;