summaryrefslogtreecommitdiffstats
path: root/drivers/block/loop.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block/loop.c')
-rw-r--r--drivers/block/loop.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 37c6949ee..fc6024fdc 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -643,7 +643,7 @@ static int lo_open(struct inode *inode, struct file *file)
static int lo_release(struct inode *inode, struct file *file)
{
struct loop_device *lo;
- int dev, err;
+ int dev;
if (!inode)
return 0;
@@ -654,7 +654,6 @@ static int lo_release(struct inode *inode, struct file *file)
dev = MINOR(inode->i_rdev);
if (dev >= max_loop)
return 0;
- err = fsync_dev(inode->i_rdev);
lo = &loop_dev[dev];
if (lo->lo_refcnt <= 0)
printk(KERN_ERR "lo_release: refcount(%d) <= 0\n", lo->lo_refcnt);
@@ -665,7 +664,7 @@ static int lo_release(struct inode *inode, struct file *file)
xfer_funcs[type]->unlock(lo);
MOD_DEC_USE_COUNT;
}
- return err;
+ return 0;
}
static struct block_device_operations lo_fops = {
@@ -760,6 +759,8 @@ int __init loop_init(void)
memset(loop_blksizes, 0, max_loop * sizeof(int));
blk_size[MAJOR_NR] = loop_sizes;
blksize_size[MAJOR_NR] = loop_blksizes;
+ for (i=0; i < max_loop; i++)
+ register_disk(NULL, MKDEV(MAJOR_NR,i), 1, &lo_fops, 0);
return 0;
}