make set_blocksize() fail unless block device is opened exclusive Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
diff --git a/Documentation/filesystems/porting.rst b/Documentation/filesystems/porting.rst index 1be76ef..5503d5c 100644 --- a/Documentation/filesystems/porting.rst +++ b/Documentation/filesystems/porting.rst
@@ -1134,3 +1134,10 @@ device freezing now works for any block device owned by a given superblock, not just the main block device. The get_active_super() helper and bd_fsfreeze_sb pointer are gone. + +--- + +**mandatory** + +set_blocksize() takes opened struct file instead of struct block_device now +and it *must* be opened exclusive.
diff --git a/block/bdev.c b/block/bdev.c index a329ff9..a89bce3 100644 --- a/block/bdev.c +++ b/block/bdev.c
@@ -157,6 +157,9 @@ int set_blocksize(struct file *file, int size) if (size < bdev_logical_block_size(bdev)) return -EINVAL; + if (!file->private_data) + return -EINVAL; + /* Don't change the size if it is same as current */ if (inode->i_blkbits != blksize_bits(size)) { sync_blockdev(bdev);