aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/dev.c')
-rw-r--r--kernel/dev.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/dev.c b/kernel/dev.c
index 2e081d0..71d306a 100644
--- a/kernel/dev.c
+++ b/kernel/dev.c
@@ -78,12 +78,14 @@ static void request_wait_answer(struct fuse_req *req, int interruptible)
return;
/* Request interrupted... Wait for it to be unlocked */
- if (req->locked) {
+ while (req->locked) {
req->interrupted = 1;
spin_unlock(&fuse_lock);
wait_event(req->waitq, !req->locked);
spin_lock(&fuse_lock);
}
+ if (req->finished)
+ return;
/* Operations which modify the filesystem cannot safely be
restarted, because it is uncertain whether the operation has