From a1363c41f2c74d62ed48504cb8aed9b675e50e11 Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Wed, 15 Apr 2015 17:18:05 +0300 Subject: [PATCH] krbd: rename should_match_minor() to have_minor_attr() Rename and clarify why simply checking kernel version doesn't work. Signed-off-by: Ilya Dryomov --- src/krbd.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/krbd.cc b/src/krbd.cc index 04f4004754298..da426b188c6ef 100644 --- a/src/krbd.cc +++ b/src/krbd.cc @@ -93,12 +93,15 @@ static int sysfs_write_rbd_remove(const string& buf) return sysfs_write_rbd("remove", buf); } -static int should_match_minor(void) +static int have_minor_attr(void) { /* * 'minor' attribute was added as part of single_major merge, which * exposed the 'single_major' parameter. 'minor' is always present, * regardless of whether single-major scheme is turned on or not. + * + * (Something like ver >= KERNEL_VERSION(3, 14, 0) is a no-go because + * this has to work with rbd.ko backported to various kernels.) */ return access("/sys/module/rbd/parameters/single_major", F_OK) == 0; } @@ -217,7 +220,7 @@ static int wait_for_udev_add(struct udev_monitor *mon, const char *pool, const char *this_major = udev_device_get_property_value(dev, "MAJOR"); const char *this_minor = udev_device_get_property_value(dev, "MINOR"); - assert(!minor ^ should_match_minor()); + assert(!minor ^ have_minor_attr()); if (strcmp(this_major, major) == 0 && (!minor || strcmp(this_minor, minor) == 0)) { @@ -338,7 +341,7 @@ static int devno_to_krbd_id(struct udev *udev, dev_t devno, string *pid) if (r < 0) goto out_enm; - if (should_match_minor()) { + if (have_minor_attr()) { r = udev_enumerate_add_match_sysattr(enm, "minor", stringify(minor(devno)).c_str()); if (r < 0) -- 2.39.5