diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2004-11-09 17:30:29 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2004-11-09 17:30:29 +0000 |
commit | 064efb0c65763655c3b7cc66b0dc0c553b60a2a5 (patch) | |
tree | 0d00e806cd46a2826cab8313b3aded60f7710d28 /kernel/dev.c | |
parent | c20bbbf5850f1a05c92b54dbea463a8f540d1eeb (diff) | |
download | libfuse-064efb0c65763655c3b7cc66b0dc0c553b60a2a5.tar.gz |
cleanups
Diffstat (limited to 'kernel/dev.c')
-rw-r--r-- | kernel/dev.c | 4 |
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 |