This patch adds more accurate error message for specific
ssyfs_create_link() call, to help debugging failure during
bcache device start tup.

Signed-off-by: Coly Li <[email protected]>
---
 drivers/md/bcache/super.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index 74eb18b1af40..1fa3f4e26d02 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -693,6 +693,7 @@ static void bcache_device_link(struct bcache_device *d, 
struct cache_set *c,
 {
        unsigned int i;
        struct cache *ca;
+       int ret;
 
        for_each_cache(ca, d->c, i)
                bd_link_disk_holder(ca->bdev, d->disk);
@@ -700,9 +701,13 @@ static void bcache_device_link(struct bcache_device *d, 
struct cache_set *c,
        snprintf(d->name, BCACHEDEVNAME_SIZE,
                 "%s%u", name, d->id);
 
-       WARN(sysfs_create_link(&d->kobj, &c->kobj, "cache") ||
-            sysfs_create_link(&c->kobj, &d->kobj, d->name),
-            "Couldn't create device <-> cache set symlinks");
+       ret = sysfs_create_link(&d->kobj, &c->kobj, "cache");
+       if (ret < 0)
+               pr_err("Couldn't create device -> cache set symlink");
+
+       ret = sysfs_create_link(&c->kobj, &d->kobj, d->name);
+       if (ret < 0)
+               pr_err("Couldn't create cache set -> device symlink");
 
        clear_bit(BCACHE_DEV_UNLINK_DONE, &d->flags);
 }
-- 
2.16.4

Reply via email to