diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2004-11-14 09:19:51 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2004-11-14 09:19:51 +0000 |
commit | 08ddb8e5e0af8c1326607f4d06c0dbc85733e483 (patch) | |
tree | 55617c609dc06985307a88baba5dbedb7c2d5d0d /kernel/dir.c | |
parent | 30e8eb3e135291717eceaae69162fceb91d30aa1 (diff) | |
download | libfuse-08ddb8e5e0af8c1326607f4d06c0dbc85733e483.tar.gz |
merge from 2_0_merge2 to 2_1_pre1
Diffstat (limited to 'kernel/dir.c')
-rw-r--r-- | kernel/dir.c | 21 |
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; } |