summaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-09-06 23:01:15 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2018-09-06 23:01:15 +0200
commitca16eb342ebedbf3bb1d8450048fe428895b0b65 (patch)
tree926d774db9a92c1cc747b3cee1195566ba1955f9 /drivers/block
parentMerge tag 'apparmor-pr-2018-09-06' of git://git.kernel.org/pub/scm/linux/kern... (diff)
parentblock: bfq: swap puts in bfqg_and_blkg_put (diff)
downloadlinux-ca16eb342ebedbf3bb1d8450048fe428895b0b65.tar.xz
linux-ca16eb342ebedbf3bb1d8450048fe428895b0b65.zip
Merge tag 'for-linus-20180906' of git://git.kernel.dk/linux-block
Pull block fixes from Jens Axboe: "Small collection of fixes that should go into this release. This contains: - Small series that fixes a race between blkcg teardown and writeback (Dennis Zhou) - Fix disallowing invalid block size settings from the nbd ioctl (me) - BFQ fix for a use-after-free on last release of a bfqg (Konstantin Khlebnikov) - Fix for the "don't warn for flush" fix (Mikulas)" * tag 'for-linus-20180906' of git://git.kernel.dk/linux-block: block: bfq: swap puts in bfqg_and_blkg_put block: don't warn when doing fsync on read-only devices nbd: don't allow invalid blocksize settings blkcg: use tryget logic when associating a blkg with a bio blkcg: delay blkg destruction until after writeback has finished Revert "blk-throttle: fix race between blkcg_bio_issue_check() and cgroup_rmdir()"
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/nbd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 3863c00372bb..14a51254c3db 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -1239,6 +1239,9 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd,
case NBD_SET_SOCK:
return nbd_add_socket(nbd, arg, false);
case NBD_SET_BLKSIZE:
+ if (!arg || !is_power_of_2(arg) || arg < 512 ||
+ arg > PAGE_SIZE)
+ return -EINVAL;
nbd_size_set(nbd, arg,
div_s64(config->bytesize, arg));
return 0;