summaryrefslogtreecommitdiff
path: root/drivers/block/loop.c
diff options
context:
space:
mode:
authorAlexander Viro <viro@math.psu.edu>2002-04-24 23:50:03 -0700
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-04-24 23:50:03 -0700
commitefb0023262a442fd5bd2b443f8431c10c5e08fb0 (patch)
tree69061d81c44d7ea3a79cb7135a682478709e97e9 /drivers/block/loop.c
parent3b57ec8db680fcafa4338655692290c571109700 (diff)
[PATCH] (6/15) big struct block_device * push (first series)
- switch loop_set_fd() to struct block_device
Diffstat (limited to 'drivers/block/loop.c')
-rw-r--r--drivers/block/loop.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index e900fc315c19..e126a8e9932b 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -585,11 +585,12 @@ static int loop_thread(void *data)
return 0;
}
-static int loop_set_fd(struct loop_device *lo, struct file *lo_file, kdev_t dev,
- unsigned int arg)
+static int loop_set_fd(struct loop_device *lo, struct file *lo_file,
+ struct block_device *bdev, unsigned int arg)
{
struct file *file;
struct inode *inode;
+ kdev_t dev = to_kdev_t(bdev->bd_dev);
kdev_t lo_device;
int lo_flags = 0;
int error;
@@ -613,7 +614,7 @@ static int loop_set_fd(struct loop_device *lo, struct file *lo_file, kdev_t dev,
if (S_ISBLK(inode->i_mode)) {
lo_device = inode->i_rdev;
- if (kdev_same(lo_device, dev)) {
+ if (inode->i_bdev == bdev) {
error = -EBUSY;
goto out;
}
@@ -828,7 +829,7 @@ static int lo_ioctl(struct inode * inode, struct file * file,
down(&lo->lo_ctl_mutex);
switch (cmd) {
case LOOP_SET_FD:
- err = loop_set_fd(lo, file, inode->i_rdev, arg);
+ err = loop_set_fd(lo, file, inode->i_bdev, arg);
break;
case LOOP_CLR_FD:
err = loop_clr_fd(lo, inode->i_bdev);