This patch adds more error message in bch_cached_dev_run() to indicate
the exact reason why an error value is returned. Please notice when
printing out the "is running already" message, pr_info() is used here,
because in this case also -EBUSY is returned, the bcache device can
continue to attach to the cache devince and run, so it won't be an
error level message in kernel message.

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

diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index 4a6406b53de1..026e2df358c3 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -926,13 +926,18 @@ int bch_cached_dev_run(struct cached_dev *dc)
                NULL,
        };
 
-       if (dc->io_disable)
+       if (dc->io_disable) {
+               pr_err("I/O disabled on cached dev %s",
+                      dc->backing_dev_name);
                return -EIO;
+       }
 
        if (atomic_xchg(&dc->running, 1)) {
                kfree(env[1]);
                kfree(env[2]);
                kfree(buf);
+               pr_info("cached dev %s is running already",
+                      dc->backing_dev_name);
                return -EBUSY;
        }
 
@@ -961,7 +966,7 @@ int bch_cached_dev_run(struct cached_dev *dc)
        if (sysfs_create_link(&d->kobj, &disk_to_dev(d->disk)->kobj, "dev") ||
            sysfs_create_link(&disk_to_dev(d->disk)->kobj,
                              &d->kobj, "bcache")) {
-               pr_debug("error creating sysfs link");
+               pr_err("Couldn't create bcache dev <-> disk sysfs symlinks");
                return -ENOMEM;
        }
 
-- 
2.16.4

Reply via email to