Skip to content

Commit

Permalink
jfs: fix generic posix ACL regression
Browse files Browse the repository at this point in the history
I missed a couple errors in reviewing the patches converting jfs
to use the generic posix ACL function. Setting ACL's currently
fails with -EOPNOTSUPP.

Signed-off-by: Dave Kleikamp <[email protected]>
Reported-by: Michael L. Semon <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
  • Loading branch information
kleikamp committed Feb 8, 2014
1 parent 41f76d8 commit c18f7b5
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions fs/jfs/xattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -854,9 +854,6 @@ int jfs_setxattr(struct dentry *dentry, const char *name, const void *value,
int rc;
tid_t tid;

if ((rc = can_set_xattr(inode, name, value, value_len)))
return rc;

/*
* If this is a request for a synthetic attribute in the system.*
* namespace use the generic infrastructure to resolve a handler
Expand All @@ -865,6 +862,9 @@ int jfs_setxattr(struct dentry *dentry, const char *name, const void *value,
if (!strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
return generic_setxattr(dentry, name, value, value_len, flags);

if ((rc = can_set_xattr(inode, name, value, value_len)))
return rc;

if (value == NULL) { /* empty EA, do not remove */
value = "";
value_len = 0;
Expand Down Expand Up @@ -1034,9 +1034,6 @@ int jfs_removexattr(struct dentry *dentry, const char *name)
int rc;
tid_t tid;

if ((rc = can_set_xattr(inode, name, NULL, 0)))
return rc;

/*
* If this is a request for a synthetic attribute in the system.*
* namespace use the generic infrastructure to resolve a handler
Expand All @@ -1045,6 +1042,9 @@ int jfs_removexattr(struct dentry *dentry, const char *name)
if (!strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN))
return generic_removexattr(dentry, name);

if ((rc = can_set_xattr(inode, name, NULL, 0)))
return rc;

tid = txBegin(inode->i_sb, 0);
mutex_lock(&ji->commit_mutex);
rc = __jfs_setxattr(tid, dentry->d_inode, name, NULL, 0, XATTR_REPLACE);
Expand All @@ -1061,7 +1061,7 @@ int jfs_removexattr(struct dentry *dentry, const char *name)
* attributes are handled directly.
*/
const struct xattr_handler *jfs_xattr_handlers[] = {
#ifdef JFS_POSIX_ACL
#ifdef CONFIG_JFS_POSIX_ACL
&posix_acl_access_xattr_handler,
&posix_acl_default_xattr_handler,
#endif
Expand Down

0 comments on commit c18f7b5

Please sign in to comment.