summaryrefslogtreecommitdiffstats
path: root/fs/fuse/file.c
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2006-06-25 14:48:54 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-25 19:01:19 +0200
commita4d27e75ffb7b8ecb7eed0c7db0df975525f3fd7 (patch)
tree2353706a33196438547ed4651afd9f2d81dd96e8 /fs/fuse/file.c
parent[PATCH] fuse: rename the interrupted flag (diff)
downloadlinux-a4d27e75ffb7b8ecb7eed0c7db0df975525f3fd7.tar.xz
linux-a4d27e75ffb7b8ecb7eed0c7db0df975525f3fd7.zip
[PATCH] fuse: add request interruption
Add synchronous request interruption. This is needed for file locking operations which have to be interruptible. However filesystem may implement interruptibility of other operations (e.g. like NFS 'intr' mount option). Signed-off-by: Miklos Szeredi <miklos@szeredi.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/fuse/file.c')
-rw-r--r--fs/fuse/file.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index ce759414cff9..36f92f181d2f 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -705,6 +705,9 @@ static int fuse_setlk(struct file *file, struct file_lock *fl)
fuse_lk_fill(req, file, fl, opcode, pid);
request_send(fc, req);
err = req->out.h.error;
+ /* locking is restartable */
+ if (err == -EINTR)
+ err = -ERESTARTSYS;
fuse_put_request(fc, req);
return err;
}