From 1a232a58ea91c7d4a6a2fbb2f3029563d14b4b8e Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Sun, 14 Nov 2004 08:19:41 +0000 Subject: [PATCH] fix compilation with > 2.6.9 kernels --- ChangeLog | 2 ++ configure.in | 2 +- kernel/configure.ac | 2 +- kernel/dir.c | 21 +++++++++++++++++---- 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 * 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; } -- 2.30.2