mirror of
https://github.com/torvalds/linux.git
synced 2025-11-03 18:20:25 +02:00
btrfs: use fs_holder_ops for all opened devices
Since we have btrfs_fs_info::sb (struct super_block) as our block device holder, we can safely use fs_holder_ops for all of our block devices. This enables freezing/thawing the filesystem from the underlying block devices. This may enhance hibernation/suspend support since previously freezing/thawing a block device managed by btrfs won't do anything btrfs specific, but only syncing the block device. Thus before this change, freezing the underlying block devices won't prevent future writes into the filesystem, thus may cause problems for hibernation/suspend when btrfs is involved. Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
40426dd147
commit
08fa138864
2 changed files with 3 additions and 3 deletions
|
|
@ -250,7 +250,7 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,
|
||||||
}
|
}
|
||||||
|
|
||||||
bdev_file = bdev_file_open_by_path(device_path, BLK_OPEN_WRITE,
|
bdev_file = bdev_file_open_by_path(device_path, BLK_OPEN_WRITE,
|
||||||
fs_info->sb, NULL);
|
fs_info->sb, &fs_holder_ops);
|
||||||
if (IS_ERR(bdev_file)) {
|
if (IS_ERR(bdev_file)) {
|
||||||
btrfs_err(fs_info, "target device %s is invalid!", device_path);
|
btrfs_err(fs_info, "target device %s is invalid!", device_path);
|
||||||
return PTR_ERR(bdev_file);
|
return PTR_ERR(bdev_file);
|
||||||
|
|
|
||||||
|
|
@ -473,7 +473,7 @@ btrfs_get_bdev_and_sb(const char *device_path, blk_mode_t flags, void *holder,
|
||||||
struct block_device *bdev;
|
struct block_device *bdev;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
*bdev_file = bdev_file_open_by_path(device_path, flags, holder, NULL);
|
*bdev_file = bdev_file_open_by_path(device_path, flags, holder, &fs_holder_ops);
|
||||||
|
|
||||||
if (IS_ERR(*bdev_file)) {
|
if (IS_ERR(*bdev_file)) {
|
||||||
ret = PTR_ERR(*bdev_file);
|
ret = PTR_ERR(*bdev_file);
|
||||||
|
|
@ -2705,7 +2705,7 @@ int btrfs_init_new_device(struct btrfs_fs_info *fs_info, const char *device_path
|
||||||
return -EROFS;
|
return -EROFS;
|
||||||
|
|
||||||
bdev_file = bdev_file_open_by_path(device_path, BLK_OPEN_WRITE,
|
bdev_file = bdev_file_open_by_path(device_path, BLK_OPEN_WRITE,
|
||||||
fs_info->sb, NULL);
|
fs_info->sb, &fs_holder_ops);
|
||||||
if (IS_ERR(bdev_file))
|
if (IS_ERR(bdev_file))
|
||||||
return PTR_ERR(bdev_file);
|
return PTR_ERR(bdev_file);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue