aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6/xfs_iops.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2008-05-19 02:34:34 -0400
committerNiv Sardi <xaiki@debian.org>2008-07-28 02:58:13 -0400
commit911ee3de3d1cb6620e2ac4e0678ff434867e2644 (patch)
tree3ecde1181f6e312073893feee10893fd5be7d9ce /fs/xfs/linux-2.6/xfs_iops.c
parentd748c62367eb630cc30b91d561a5362f597a0892 (diff)
[XFS] Kill attr_capable checks as already done in xattr_permission.
No need for addition permission checks in the xattr handler, fs/xattr.c:xattr_permission() already does them, and in fact slightly more strict then what was in the attr_capable handlers. SGI-PV: 981809 SGI-Modid: xfs-linux-melb:xfs-kern:31164a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Tim Shimmin <tes@sgi.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_iops.c')
-rw-r--r--fs/xfs/linux-2.6/xfs_iops.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c
index 5fc61c824bb9..13b6cfd366c2 100644
--- a/fs/xfs/linux-2.6/xfs_iops.c
+++ b/fs/xfs/linux-2.6/xfs_iops.c
@@ -739,15 +739,11 @@ xfs_vn_setxattr(
739 char *attr = (char *)name; 739 char *attr = (char *)name;
740 attrnames_t *namesp; 740 attrnames_t *namesp;
741 int xflags = 0; 741 int xflags = 0;
742 int error;
743 742
744 namesp = attr_lookup_namespace(attr, attr_namespaces, ATTR_NAMECOUNT); 743 namesp = attr_lookup_namespace(attr, attr_namespaces, ATTR_NAMECOUNT);
745 if (!namesp) 744 if (!namesp)
746 return -EOPNOTSUPP; 745 return -EOPNOTSUPP;
747 attr += namesp->attr_namelen; 746 attr += namesp->attr_namelen;
748 error = namesp->attr_capable(vp, NULL);
749 if (error)
750 return error;
751 747
752 /* Convert Linux syscall to XFS internal ATTR flags */ 748 /* Convert Linux syscall to XFS internal ATTR flags */
753 if (flags & XATTR_CREATE) 749 if (flags & XATTR_CREATE)
@@ -769,15 +765,11 @@ xfs_vn_getxattr(
769 char *attr = (char *)name; 765 char *attr = (char *)name;
770 attrnames_t *namesp; 766 attrnames_t *namesp;
771 int xflags = 0; 767 int xflags = 0;
772 ssize_t error;
773 768
774 namesp = attr_lookup_namespace(attr, attr_namespaces, ATTR_NAMECOUNT); 769 namesp = attr_lookup_namespace(attr, attr_namespaces, ATTR_NAMECOUNT);
775 if (!namesp) 770 if (!namesp)
776 return -EOPNOTSUPP; 771 return -EOPNOTSUPP;
777 attr += namesp->attr_namelen; 772 attr += namesp->attr_namelen;
778 error = namesp->attr_capable(vp, NULL);
779 if (error)
780 return error;
781 773
782 /* Convert Linux syscall to XFS internal ATTR flags */ 774 /* Convert Linux syscall to XFS internal ATTR flags */
783 if (!size) { 775 if (!size) {
@@ -817,15 +809,12 @@ xfs_vn_removexattr(
817 char *attr = (char *)name; 809 char *attr = (char *)name;
818 attrnames_t *namesp; 810 attrnames_t *namesp;
819 int xflags = 0; 811 int xflags = 0;
820 int error;
821 812
822 namesp = attr_lookup_namespace(attr, attr_namespaces, ATTR_NAMECOUNT); 813 namesp = attr_lookup_namespace(attr, attr_namespaces, ATTR_NAMECOUNT);
823 if (!namesp) 814 if (!namesp)
824 return -EOPNOTSUPP; 815 return -EOPNOTSUPP;
825 attr += namesp->attr_namelen; 816 attr += namesp->attr_namelen;
826 error = namesp->attr_capable(vp, NULL); 817
827 if (error)
828 return error;
829 xflags |= namesp->attr_flag; 818 xflags |= namesp->attr_flag;
830 return namesp->attr_remove(vp, attr, xflags); 819 return namesp->attr_remove(vp, attr, xflags);
831} 820}