aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/dir.c2
-rw-r--r--kernel/fuse_i.h3
2 files changed, 5 insertions, 0 deletions
diff --git a/kernel/dir.c b/kernel/dir.c
index 48df469..bfec288 100644
--- a/kernel/dir.c
+++ b/kernel/dir.c
@@ -659,9 +659,11 @@ static int fuse_permission(struct inode *inode, int mask, struct nameidata *nd)
return err;
} else {
int mode = inode->i_mode;
+#ifndef KERNEL_2_6_11_PLUS
if ((mask & MAY_WRITE) && IS_RDONLY(inode) &&
(S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode)))
return -EROFS;
+#endif
if ((mask & MAY_EXEC) && !S_ISDIR(mode) && !(mode & S_IXUGO))
return -EACCES;
diff --git a/kernel/fuse_i.h b/kernel/fuse_i.h
index dced449..fbebe7f 100644
--- a/kernel/fuse_i.h
+++ b/kernel/fuse_i.h
@@ -31,6 +31,9 @@
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
# define KERNEL_2_6_10_PLUS
# endif
+# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11)
+# define KERNEL_2_6_11_PLUS
+# endif
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
# define KERNEL_2_6_12_PLUS
# endif