diff options
author | Christoph Hellwig <hch@infradead.org> | 2008-05-19 02:34:34 -0400 |
---|---|---|
committer | Niv Sardi <xaiki@debian.org> | 2008-07-28 02:58:13 -0400 |
commit | 911ee3de3d1cb6620e2ac4e0678ff434867e2644 (patch) | |
tree | 3ecde1181f6e312073893feee10893fd5be7d9ce /fs/xfs/linux-2.6/xfs_iops.c | |
parent | d748c62367eb630cc30b91d561a5362f597a0892 (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.c | 13 |
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 | } |