set_blocksize(bdev, lo_blocksize);
- error = kernel_thread(loop_thread, lo, CLONE_KERNEL);
- if (error < 0)
- goto out_putf;
+ kernel_thread(loop_thread, lo, CLONE_KERNEL);
wait_for_completion(&lo->lo_done);
return 0;
struct loop_device *lo = inode->i_bdev->bd_disk->private_data;
int err;
- mutex_lock(&lo->lo_ctl_mutex);
+ down(&lo->lo_ctl_mutex);
switch (cmd) {
case LOOP_SET_FD:
err = loop_set_fd(lo, file, inode->i_bdev, arg);
default:
err = lo->ioctl ? lo->ioctl(lo, cmd, arg) : -EINVAL;
}
- mutex_unlock(&lo->lo_ctl_mutex);
+ up(&lo->lo_ctl_mutex);
return err;
}
{
struct loop_device *lo = inode->i_bdev->bd_disk->private_data;
- mutex_lock(&lo->lo_ctl_mutex);
+ down(&lo->lo_ctl_mutex);
lo->lo_refcnt++;
- mutex_unlock(&lo->lo_ctl_mutex);
+ up(&lo->lo_ctl_mutex);
return 0;
}
{
struct loop_device *lo = inode->i_bdev->bd_disk->private_data;
- mutex_lock(&lo->lo_ctl_mutex);
+ down(&lo->lo_ctl_mutex);
--lo->lo_refcnt;
- mutex_unlock(&lo->lo_ctl_mutex);
+ up(&lo->lo_ctl_mutex);
return 0;
}
xfer_funcs[n] = NULL;
for (lo = &loop_dev[0]; lo < &loop_dev[max_loop]; lo++) {
- mutex_lock(&lo->lo_ctl_mutex);
+ down(&lo->lo_ctl_mutex);
if (lo->lo_encryption == xfer)
loop_release_xfer(lo);
- mutex_unlock(&lo->lo_ctl_mutex);
+ up(&lo->lo_ctl_mutex);
}
return 0;
lo->lo_queue = blk_alloc_queue(GFP_KERNEL);
if (!lo->lo_queue)
goto out_mem4;
- mutex_init(&lo->lo_ctl_mutex);
+ init_MUTEX(&lo->lo_ctl_mutex);
init_completion(&lo->lo_done);
init_completion(&lo->lo_bh_done);
lo->lo_number = i;
out_mem4:
while (i--)
- blk_cleanup_queue(loop_dev[i].lo_queue);
+ blk_put_queue(loop_dev[i].lo_queue);
devfs_remove("loop");
i = max_loop;
out_mem3:
for (i = 0; i < max_loop; i++) {
del_gendisk(disks[i]);
- blk_cleanup_queue(loop_dev[i].lo_queue);
+ blk_put_queue(loop_dev[i].lo_queue);
put_disk(disks[i]);
}
devfs_remove("loop");