From efb0023262a442fd5bd2b443f8431c10c5e08fb0 Mon Sep 17 00:00:00 2001 From: Alexander Viro Date: Wed, 24 Apr 2002 23:50:03 -0700 Subject: [PATCH] [PATCH] (6/15) big struct block_device * push (first series) - switch loop_set_fd() to struct block_device --- drivers/block/loop.c | 9 +++++---- 1 file 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); -- 2.39.5