aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/dir.c
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2004-11-14 09:19:51 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2004-11-14 09:19:51 +0000
commit08ddb8e5e0af8c1326607f4d06c0dbc85733e483 (patch)
tree55617c609dc06985307a88baba5dbedb7c2d5d0d /kernel/dir.c
parent30e8eb3e135291717eceaae69162fceb91d30aa1 (diff)
downloadlibfuse-08ddb8e5e0af8c1326607f4d06c0dbc85733e483.tar.gz
merge from 2_0_merge2 to 2_1_pre1
Diffstat (limited to 'kernel/dir.c')
-rw-r--r--kernel/dir.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/kernel/dir.c b/kernel/dir.c
index a2fe6a8..e322544 100644
--- a/kernel/dir.c
+++ b/kernel/dir.c
@@ -600,7 +600,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
@@ -608,8 +613,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:
@@ -853,9 +863,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;
}