diff options
| author | Jeff Mahoney <jeffm@suse.com> | 2009-05-17 01:02:03 -0400 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-17 11:45:45 -0700 | 
| commit | b83674c0da6558e357c6b482ccf299eeea77d8ef (patch) | |
| tree | 22f71c1f3f099887b53884a9cabbb6aaeb3bc0a6 /fs | |
| parent | ceb5edc457f07956c82dccfb54ca8ae7e2a399f0 (diff) | |
| download | linux-b83674c0da6558e357c6b482ccf299eeea77d8ef.tar.bz2 | |
reiserfs: fixup perms when xattrs are disabled
This adds CONFIG_REISERFS_FS_XATTR protection from reiserfs_permission.
This is needed to avoid warnings during file deletions and chowns with
xattrs disabled.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/reiserfs/xattr.c | 36 | 
1 files changed, 19 insertions, 17 deletions
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c index 628075ca82c1..8e7deb0e6964 100644 --- a/fs/reiserfs/xattr.c +++ b/fs/reiserfs/xattr.c @@ -871,23 +871,6 @@ static int reiserfs_check_acl(struct inode *inode, int mask)  	return error;  } -int reiserfs_permission(struct inode *inode, int mask) -{ -	/* -	 * We don't do permission checks on the internal objects. -	 * Permissions are determined by the "owning" object. -	 */ -	if (IS_PRIVATE(inode)) -		return 0; -	/* -	 * Stat data v1 doesn't support ACLs. -	 */ -	if (get_inode_sd_version(inode) == STAT_DATA_V1) -		return generic_permission(inode, mask, NULL); -	else -		return generic_permission(inode, mask, reiserfs_check_acl); -} -  static int create_privroot(struct dentry *dentry)  {  	int err; @@ -951,6 +934,25 @@ static int xattr_mount_check(struct super_block *s)  	return 0;  } +int reiserfs_permission(struct inode *inode, int mask) +{ +	/* +	 * We don't do permission checks on the internal objects. +	 * Permissions are determined by the "owning" object. +	 */ +	if (IS_PRIVATE(inode)) +		return 0; + +#ifdef CONFIG_REISERFS_FS_XATTR +	/* +	 * Stat data v1 doesn't support ACLs. +	 */ +	if (get_inode_sd_version(inode) != STAT_DATA_V1) +		return generic_permission(inode, mask, reiserfs_check_acl); +#endif +	return generic_permission(inode, mask, NULL); +} +  /* This will catch lookups from the fs root to .reiserfs_priv */  static int  xattr_lookup_poison(struct dentry *dentry, struct qstr *q1, struct qstr *name)  |