diff options
author | Qu Wenruo <wqu@suse.com> | 2025-06-16 09:42:20 +0930 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2025-07-22 00:06:19 +0200 |
commit | de339cbfb4027957304174321945d30a3f54e6f5 (patch) | |
tree | 74205c35bc0b8f2694ceaceec4068392b4d2d8c8 /fs/btrfs/dev-replace.c | |
parent | 9f43d0ff55e306aed9fa95c79ed372d530471382 (diff) |
btrfs: call bdev_fput() to reclaim the blk_holder immediately
As part of the preparation for btrfs blk_holder_ops, we want to ensure
the holder of a block device has a proper lifespan.
However btrfs is always using fput() to close a block device, which has
one problem:
- fput() is deferred
Meaning we can have a block device with invalid (aka, freed) holder.
To avoid the problem and align the behavior to other code, just call
bdev_fput() instead.
There is some extra requirement on the locking, but that's all resolved
by previous patches and we should be safe to call bdev_fput().
Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
-rw-r--r-- | fs/btrfs/dev-replace.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c index bd2761799181..473450ee0408 100644 --- a/fs/btrfs/dev-replace.c +++ b/fs/btrfs/dev-replace.c @@ -327,7 +327,7 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info, return 0; error: - fput(bdev_file); + bdev_fput(bdev_file); return ret; } |