From af51f25874f838d524ec91824eae7e242f8e7783 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Thu, 24 Feb 2011 15:45:41 +0100 Subject: [PATCH] --- yaml --- r: 233639 b: refs/heads/master c: 3c522cedb572bb8d2e4867f358bdaa7d0c53d88c h: refs/heads/master i: 233637: 3089ab06dbc028ec20c381e0aceb3994e0baf631 233635: 0aef3c8aa0b853e2a7876e3deaf76538a448a37e 233631: 55df1d43d091ad3cbfd5ffe7794bfaa2e16b7cf9 v: v3 --- [refs] | 2 +- trunk/block/ioctl.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index d4befe24c050..3dc3c32b84e4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dcace5ac85c628af21878a1fa151e5e6403fb8eb +refs/heads/master: 3c522cedb572bb8d2e4867f358bdaa7d0c53d88c diff --git a/trunk/block/ioctl.c b/trunk/block/ioctl.c index 9049d460fa89..1124cd297263 100644 --- a/trunk/block/ioctl.c +++ b/trunk/block/ioctl.c @@ -294,9 +294,11 @@ int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd, return -EINVAL; if (get_user(n, (int __user *) arg)) return -EFAULT; - if (!(mode & FMODE_EXCL) && - blkdev_get(bdev, mode | FMODE_EXCL, &bdev) < 0) - return -EBUSY; + if (!(mode & FMODE_EXCL)) { + bdgrab(bdev); + if (blkdev_get(bdev, mode | FMODE_EXCL, &bdev) < 0) + return -EBUSY; + } ret = set_blocksize(bdev, n); if (!(mode & FMODE_EXCL)) blkdev_put(bdev, mode | FMODE_EXCL);