summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2004-11-14 08:19:41 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2004-11-14 08:19:41 +0000
commit1a232a58ea91c7d4a6a2fbb2f3029563d14b4b8e (patch)
tree8c88b8c60ae6edb0ed94c86de17b87ae48dc4b77
parent3f2fb4a05af190cd2885fb11e13db87b9bc43933 (diff)
downloadfuse-1a232a58ea91c7d4a6a2fbb2f3029563d14b4b8e.tar.gz
fix compilation with > 2.6.9 kernels
-rw-r--r--ChangeLog2
-rw-r--r--configure.in2
-rw-r--r--kernel/configure.ac2
-rw-r--r--kernel/dir.c21
4 files changed, 21 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 494815b..c3fb257 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,8 @@
* Fix bug in fuse_readpages() causing Oops in certain situations.
Bug found by Vincenzo Ciancia.
+ * Fix compilation with kernels versions > 2.6.9.
+
2004-11-11 Miklos Szeredi <miklos@szeredi.hu>
* Check kernel interface version in fusermount to prevent
diff --git a/configure.in b/configure.in
index d9a234a..94deca7 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-AC_INIT(fuse, 2.1-pre0)
+AC_INIT(fuse, 2.1-pre1)
AM_INIT_AUTOMAKE
AM_CONFIG_HEADER(include/config.h)
diff --git a/kernel/configure.ac b/kernel/configure.ac
index 0dad9cb..7be6890 100644
--- a/kernel/configure.ac
+++ b/kernel/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(fuse-kernel, 2.1-pre0)
+AC_INIT(fuse-kernel, 2.1-pre1)
AC_CONFIG_HEADERS([config.h])
AC_PROG_INSTALL
diff --git a/kernel/dir.c b/kernel/dir.c
index bce4526..d485f49 100644
--- a/kernel/dir.c
+++ b/kernel/dir.c
@@ -528,7 +528,12 @@ static int _fuse_permission(struct inode *inode, int mask)
(!(fc->flags & FUSE_ALLOW_ROOT) || current->fsuid != 0))
return -EACCES;
else if (fc->flags & FUSE_DEFAULT_PERMISSIONS) {
- int err = vfs_permission(inode, mask);
+ int err;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)
+ err = vfs_permission(inode, mask);
+#else
+ err = generic_permission(inode, mask, NULL);
+#endif
/* If permission is denied, try to refresh file
attributes. This is also needed, because the root
@@ -536,8 +541,13 @@ static int _fuse_permission(struct inode *inode, int mask)
if (err == -EACCES) {
err = fuse_do_getattr(inode);
- if (!err)
+ if (!err) {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)
err = vfs_permission(inode, mask);
+#else
+ err = generic_permission(inode, mask, NULL);
+#endif
+ }
}
/* FIXME: Need some mechanism to revoke permissions:
@@ -779,9 +789,12 @@ static int fuse_setattr(struct dentry *entry, struct iattr *attr)
if (attr->ia_valid & ATTR_SIZE) {
unsigned long limit;
is_truncate = 1;
-
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)
limit = current->rlim[RLIMIT_FSIZE].rlim_cur;
- if (limit != RLIM_INFINITY && attr->ia_size > limit) {
+#else
+ limit = current->signal->rlim[RLIMIT_FSIZE].rlim_cur;
+#endif
+ if (limit != RLIM_INFINITY && attr->ia_size > (loff_t) limit) {
send_sig(SIGXFSZ, current, 0);
return -EFBIG;
}