diff options
author | Christian Brauner <brauner@kernel.org> | 2024-03-14 17:24:13 +0300 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2024-03-18 12:32:44 +0300 |
commit | 59a55a63c24624c7ad268f12c8f82d142ef6a6d4 (patch) | |
tree | 95f2bb37ccdb6db29f06645c68946f3f2c7d4c8c /block/blk-settings.c | |
parent | b74c02a37987d3ea755f96119c527f5e91950592 (diff) | |
download | linux-59a55a63c24624c7ad268f12c8f82d142ef6a6d4.tar.xz |
fs,block: get holder during claim
Now that we open block devices as files we need to deal with the
realities that closing is a deferred operation. An operation on the
block device such as e.g., freeze, thaw, or removal that runs
concurrently with umount, tries to acquire a stable reference on the
holder. The holder might already be gone though. Make that reliable by
grabbing a passive reference to the holder during bdev_open() and
releasing it during bdev_release().
Fixes: f3a608827d1f ("bdev: open block device as files") # mainline only
Reported-by: Christoph Hellwig <hch@infradead.org>
Link: https://lore.kernel.org/r/ZfEQQ9jZZVes0WCZ@infradead.org
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Christoph Hellwig <hch@infradead.org>
Tested-by: Yi Zhang <yi.zhang@redhat.com>
Reported-by: https://lore.kernel.org/r/CAHj4cs8tbDwKRwfS1=DmooP73ysM__xAb2PQc6XsAmWR+VuYmg@mail.gmail.com
Link: https://lore.kernel.org/r/20240315-freibad-annehmbar-ca68c375af91@brauner
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'block/blk-settings.c')
0 files changed, 0 insertions, 0 deletions