diff options
| author | Alexander Viro <viro@math.psu.edu> | 2002-04-24 23:50:03 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2002-04-24 23:50:03 -0700 |
| commit | efb0023262a442fd5bd2b443f8431c10c5e08fb0 (patch) | |
| tree | 69061d81c44d7ea3a79cb7135a682478709e97e9 /drivers/block/loop.c | |
| parent | 3b57ec8db680fcafa4338655692290c571109700 (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.c | 9 |
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); |
