47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
From: Gabriel de Perthuis <g2p.code@gmail.com>
|
|
Date: Sun, 29 Nov 2015 18:40:23 -0800
|
|
Subject: [6/8] bcache: allows use of register in udev to avoid "device_busy"
|
|
error.
|
|
Origin: https://git.kernel.org/cgit/linux/kernel/git/axboe/linux-block.git/commit?id=d7076f21629f8f329bca4a44dc408d94670f49e2
|
|
|
|
Allows to use register, not register_quiet in udev to avoid "device_busy" error.
|
|
The initial patch proposed at https://lkml.org/lkml/2013/8/26/549 by Gabriel de Perthuis
|
|
<g2p.code@gmail.com> does not unlock the mutex and hangs the kernel.
|
|
|
|
See http://thread.gmane.org/gmane.linux.kernel.bcache.devel/2594 for the discussion.
|
|
|
|
Cc: Denis Bychkov <manover@gmail.com>
|
|
Cc: Kent Overstreet <kent.overstreet@gmail.com>
|
|
Cc: Eric Wheeler <bcache@linux.ewheeler.net>
|
|
Cc: Gabriel de Perthuis <g2p.code@gmail.com>
|
|
Cc: stable@vger.kernel.org
|
|
|
|
Signed-off-by: Jens Axboe <axboe@fb.com>
|
|
---
|
|
drivers/md/bcache/super.c | 5 +++--
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
|
|
index 18f14a2..8d0ead9 100644
|
|
--- a/drivers/md/bcache/super.c
|
|
+++ b/drivers/md/bcache/super.c
|
|
@@ -1938,6 +1938,8 @@ static ssize_t register_bcache(struct kobject *k, struct kobj_attribute *attr,
|
|
else
|
|
err = "device busy";
|
|
mutex_unlock(&bch_register_lock);
|
|
+ if (attr == &ksysfs_register_quiet)
|
|
+ goto out;
|
|
}
|
|
goto err;
|
|
}
|
|
@@ -1976,8 +1978,7 @@ out:
|
|
err_close:
|
|
blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
|
|
err:
|
|
- if (attr != &ksysfs_register_quiet)
|
|
- pr_info("error opening %s: %s", path, err);
|
|
+ pr_info("error opening %s: %s", path, err);
|
|
ret = -EINVAL;
|
|
goto out;
|
|
}
|