mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 08:03:01 +09:00
block: call into the file system for ioctl BLKFLSBUF
BLKFLSBUF is a historic ioctl that is called on a file handle to a block device and syncs either the file system mounted on that block device if there is one, or otherwise the just the data on the block device. Replace the get_super based syncing with a holder operation to remove the last usage of get_super, and to also support syncing the file system if the block device is not the main block device stored in s_dev. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Josef Bacik <josef@toxicpanda.com> Message-Id: <20230811100828.1897174-16-hch@lst.de> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
committed by
Christian Brauner
parent
d8530de5a6
commit
2142b88c37
16
block/bdev.c
16
block/bdev.c
@@ -206,22 +206,6 @@ int sync_blockdev_range(struct block_device *bdev, loff_t lstart, loff_t lend)
|
||||
}
|
||||
EXPORT_SYMBOL(sync_blockdev_range);
|
||||
|
||||
/*
|
||||
* Write out and wait upon all dirty data associated with this
|
||||
* device. Filesystem data as well as the underlying block
|
||||
* device. Takes the superblock lock.
|
||||
*/
|
||||
int fsync_bdev(struct block_device *bdev)
|
||||
{
|
||||
struct super_block *sb = get_super(bdev);
|
||||
if (sb) {
|
||||
int res = sync_filesystem(sb);
|
||||
drop_super(sb);
|
||||
return res;
|
||||
}
|
||||
return sync_blockdev(bdev);
|
||||
}
|
||||
|
||||
/**
|
||||
* freeze_bdev - lock a filesystem and force it into a consistent state
|
||||
* @bdev: blockdevice to lock
|
||||
|
||||
Reference in New Issue
Block a user