diff options
author | Nicolas Pitre <nicolas.pitre@linaro.org> | 2011-09-20 14:46:13 -0400 |
---|---|---|
committer | Nicolas Pitre <nicolas.pitre@linaro.org> | 2011-09-20 14:46:13 -0400 |
commit | 78ba6223a14eac73a1fbfc35bd456348171bffc6 (patch) | |
tree | db50b17e03f3772443798415654c873d769a54ec /drivers/block/loop.c | |
parent | f392cbf75615e9d8cb90ef5ffb8d4e752b7be3c7 (diff) | |
parent | 04aa37b5f943920017ad094e776cd5514b1a9246 (diff) |
Merge commit 'v3.0.4' into linaro-3.0linux-linaro-3.0-2011.09-0
Diffstat (limited to 'drivers/block/loop.c')
-rw-r--r-- | drivers/block/loop.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 76c8da78212..2ebacf0e1ed 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -750,10 +750,10 @@ static ssize_t loop_attr_backing_file_show(struct loop_device *lo, char *buf) ssize_t ret; char *p = NULL; - mutex_lock(&lo->lo_ctl_mutex); + spin_lock_irq(&lo->lo_lock); if (lo->lo_backing_file) p = d_path(&lo->lo_backing_file->f_path, buf, PAGE_SIZE - 1); - mutex_unlock(&lo->lo_ctl_mutex); + spin_unlock_irq(&lo->lo_lock); if (IS_ERR_OR_NULL(p)) ret = PTR_ERR(p); @@ -1007,7 +1007,9 @@ static int loop_clr_fd(struct loop_device *lo, struct block_device *bdev) kthread_stop(lo->lo_thread); + spin_lock_irq(&lo->lo_lock); lo->lo_backing_file = NULL; + spin_unlock_irq(&lo->lo_lock); loop_release_xfer(lo); lo->transfer = NULL; |