X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=block%2Fioctl.c;h=9049d460fa890fd45e3e31c1aa8ca9ed080e9f81;hb=5ea74318c68fcb38f02fc2fc920abd37d9a9bc33;hp=a9a302eba01e6a78b46e3af154c4f1b2a1c2c510;hpb=5943a268002fce97885f2ca08827ff1b0312068c;p=cascardo%2Flinux.git diff --git a/block/ioctl.c b/block/ioctl.c index a9a302eba01e..9049d460fa89 100644 --- a/block/ioctl.c +++ b/block/ioctl.c @@ -294,11 +294,12 @@ 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) && bd_claim(bdev, &bdev) < 0) + if (!(mode & FMODE_EXCL) && + blkdev_get(bdev, mode | FMODE_EXCL, &bdev) < 0) return -EBUSY; ret = set_blocksize(bdev, n); if (!(mode & FMODE_EXCL)) - bd_release(bdev); + blkdev_put(bdev, mode | FMODE_EXCL); return ret; case BLKPG: ret = blkpg_ioctl(bdev, (struct blkpg_ioctl_arg __user *) arg);