forked from Minki/linux
[XFS] remove spurious VN_HOLD/VN_RELE calls from xfs_acl.c
All the ACL routines are called from inode operations which are guaranteed to have a referenced inode by the VFS, so there's no need for the ACL code to grab another temporary one. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31763a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
This commit is contained in:
parent
863890cd90
commit
604323ca76
@ -217,7 +217,6 @@ xfs_acl_vget(
|
||||
posix_acl_xattr_header *ext_acl = acl;
|
||||
int flags = 0;
|
||||
|
||||
VN_HOLD(vp);
|
||||
if(size) {
|
||||
if (!(_ACL_ALLOC(xfs_acl))) {
|
||||
error = ENOMEM;
|
||||
@ -243,7 +242,6 @@ xfs_acl_vget(
|
||||
error = -posix_acl_xfs_to_xattr(xfs_acl, ext_acl, size);
|
||||
}
|
||||
out:
|
||||
VN_RELE(vp);
|
||||
if(xfs_acl)
|
||||
_ACL_FREE(xfs_acl);
|
||||
return -error;
|
||||
@ -256,7 +254,6 @@ xfs_acl_vremove(
|
||||
{
|
||||
int error;
|
||||
|
||||
VN_HOLD(vp);
|
||||
error = xfs_acl_allow_set(vp, kind);
|
||||
if (!error) {
|
||||
error = xfs_attr_remove(XFS_I(vp),
|
||||
@ -266,7 +263,6 @@ xfs_acl_vremove(
|
||||
if (error == ENOATTR)
|
||||
error = 0; /* 'scool */
|
||||
}
|
||||
VN_RELE(vp);
|
||||
return -error;
|
||||
}
|
||||
|
||||
@ -298,7 +294,6 @@ xfs_acl_vset(
|
||||
return 0;
|
||||
}
|
||||
|
||||
VN_HOLD(vp);
|
||||
error = xfs_acl_allow_set(vp, kind);
|
||||
|
||||
/* Incoming ACL exists, set file mode based on its value */
|
||||
@ -321,7 +316,6 @@ xfs_acl_vset(
|
||||
}
|
||||
|
||||
out:
|
||||
VN_RELE(vp);
|
||||
_ACL_FREE(xfs_acl);
|
||||
return -error;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user