summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2011-09-12 09:31:49 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2011-09-12 11:47:10 -0700
commit24114504c4d585ec4aae7a2b2acb81bf741f8c8a (patch)
tree52b9668b53f7d12342984be55b96e5784383a4ae
parent87adf1c66cacbc4acd0e696c896755a5091a9d3d (diff)
downloadlinux-24114504c4d585ec4aae7a2b2acb81bf741f8c8a.tar.gz
linux-24114504c4d585ec4aae7a2b2acb81bf741f8c8a.tar.bz2
linux-24114504c4d585ec4aae7a2b2acb81bf741f8c8a.zip
fuse: fix flock breakage
Commit 37fb3a30b4 ("fuse: fix flock") added in 3.1-rc4 caused flock() to fail with ENOSYS with the kernel ABI version 7.16 or earlier. Fix by falling back to testing FUSE_POSIX_LOCKS for ABI versions 7.16 and earlier. Reported-by: Martin Ziegler <ziegler@email.mathematik.uni-freiburg.de> Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Tested-by: Martin Ziegler <ziegler@email.mathematik.uni-freiburg.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--fs/fuse/inode.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 12b502929da9..add96f6ffda5 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -812,6 +812,9 @@ static void process_init_reply(struct fuse_conn *fc, struct fuse_req *req)
if (arg->minor >= 17) {
if (!(arg->flags & FUSE_FLOCK_LOCKS))
fc->no_flock = 1;
+ } else {
+ if (!(arg->flags & FUSE_POSIX_LOCKS))
+ fc->no_flock = 1;
}
if (arg->flags & FUSE_ATOMIC_O_TRUNC)
fc->atomic_o_trunc = 1;