diff options
Diffstat (limited to 'drivers/block/loop.c')
-rw-r--r-- | drivers/block/loop.c | 7 |
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; } |