From 650c5520022324c1d9098c250e487297fd997400 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Sun, 31 Jul 2011 22:21:35 +0200 Subject: [PATCH] --- yaml --- r: 263132 b: refs/heads/master c: 05eb0f252b04aa94ace0794f73d56c6a02351d80 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/loop.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index a69e9b7aab0b..f89562f57d35 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d134b00b9acca3fb054d7c88a5f5d562ecbb42d1 +refs/heads/master: 05eb0f252b04aa94ace0794f73d56c6a02351d80 diff --git a/trunk/drivers/block/loop.c b/trunk/drivers/block/loop.c index 3defc52f060c..4720c7ade0ae 100644 --- a/trunk/drivers/block/loop.c +++ b/trunk/drivers/block/loop.c @@ -743,10 +743,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); @@ -1000,7 +1000,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;