Commit ed8a9d2c authored by Ilya Dryomov's avatar Ilya Dryomov Committed by Jens Axboe

block: use bd{grab,put}() instead of open-coding

- bd_acquire() and bd_forget() open-code bdgrab() and bdput()
- raw driver uses igrab() but never checks its return value and always
  holds another ref from bind_set() while calling it, so it's
  equivalent to bdgrab()
Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent e36f6204
...@@ -71,7 +71,7 @@ static int raw_open(struct inode *inode, struct file *filp) ...@@ -71,7 +71,7 @@ static int raw_open(struct inode *inode, struct file *filp)
err = -ENODEV; err = -ENODEV;
if (!bdev) if (!bdev)
goto out; goto out;
igrab(bdev->bd_inode); bdgrab(bdev);
err = blkdev_get(bdev, filp->f_mode | FMODE_EXCL, raw_open); err = blkdev_get(bdev, filp->f_mode | FMODE_EXCL, raw_open);
if (err) if (err)
goto out; goto out;
......
...@@ -696,7 +696,7 @@ static struct block_device *bd_acquire(struct inode *inode) ...@@ -696,7 +696,7 @@ static struct block_device *bd_acquire(struct inode *inode)
spin_lock(&bdev_lock); spin_lock(&bdev_lock);
bdev = inode->i_bdev; bdev = inode->i_bdev;
if (bdev) { if (bdev) {
ihold(bdev->bd_inode); bdgrab(bdev);
spin_unlock(&bdev_lock); spin_unlock(&bdev_lock);
return bdev; return bdev;
} }
...@@ -712,7 +712,7 @@ static struct block_device *bd_acquire(struct inode *inode) ...@@ -712,7 +712,7 @@ static struct block_device *bd_acquire(struct inode *inode)
* So, we can access it via ->i_mapping always * So, we can access it via ->i_mapping always
* without igrab(). * without igrab().
*/ */
ihold(bdev->bd_inode); bdgrab(bdev);
inode->i_bdev = bdev; inode->i_bdev = bdev;
inode->i_mapping = bdev->bd_inode->i_mapping; inode->i_mapping = bdev->bd_inode->i_mapping;
list_add(&inode->i_devices, &bdev->bd_inodes); list_add(&inode->i_devices, &bdev->bd_inodes);
...@@ -735,7 +735,7 @@ void bd_forget(struct inode *inode) ...@@ -735,7 +735,7 @@ void bd_forget(struct inode *inode)
spin_unlock(&bdev_lock); spin_unlock(&bdev_lock);
if (bdev) if (bdev)
iput(bdev->bd_inode); bdput(bdev);
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment