| From 84358536dc355a9c8978ee425f87e116186bed16 Mon Sep 17 00:00:00 2001 |
| From: "Darrick J. Wong" <darrick.wong@oracle.com> |
| Date: Thu, 6 Apr 2017 16:00:39 -0700 |
| Subject: xfs: actually report xattr extents via iomap |
| |
| From: Darrick J. Wong <darrick.wong@oracle.com> |
| |
| commit 84358536dc355a9c8978ee425f87e116186bed16 upstream. |
| |
| Apparently FIEMAP for xattrs has been broken since we switched to |
| the iomap backend because of an incorrect check for xattr presence. |
| Also fix the broken locking. |
| |
| Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> |
| Reviewed-by: Brian Foster <bfoster@redhat.com> |
| Reviewed-by: Christoph Hellwig <hch@lst.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/xfs/xfs_iomap.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/fs/xfs/xfs_iomap.c |
| +++ b/fs/xfs/xfs_iomap.c |
| @@ -1151,10 +1151,10 @@ xfs_xattr_iomap_begin( |
| if (XFS_FORCED_SHUTDOWN(mp)) |
| return -EIO; |
| |
| - lockmode = xfs_ilock_data_map_shared(ip); |
| + lockmode = xfs_ilock_attr_map_shared(ip); |
| |
| /* if there are no attribute fork or extents, return ENOENT */ |
| - if (XFS_IFORK_Q(ip) || !ip->i_d.di_anextents) { |
| + if (!XFS_IFORK_Q(ip) || !ip->i_d.di_anextents) { |
| error = -ENOENT; |
| goto out_unlock; |
| } |