fix compilation with > 2.6.9 kernels
authorMiklos Szeredi <miklos@szeredi.hu>
Sun, 14 Nov 2004 08:19:41 +0000 (08:19 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Sun, 14 Nov 2004 08:19:41 +0000 (08:19 +0000)
ChangeLog
configure.in
kernel/configure.ac
kernel/dir.c

index 494815b17cc905937a875e241db7db581e8b1996..c3fb2579afe31203749eaefc68de915e50db5e22 100644 (file)
--- 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
index d9a234a979448af715b559a6b315bc6d0adc1690..94deca75b4bc2ae3717c5545c91a2b39a67b1d75 100644 (file)
@@ -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)
 
index 0dad9cbe6f4d5e06f82c0bb1c12ffcdaa128d8fa..7be68901225f147306c1bb8e731cf6389e527998 100644 (file)
@@ -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
index bce45267b8c9cb34198ea7136159001f07e72ab2..d485f49a6e1be7155e1b9631aa26cbfdd2f72fcd 100644 (file)
@@ -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;
                }