diff options
author | 2014-01-09 16:03:18 -0600 | |
---|---|---|
committer | 2014-01-09 16:03:18 -0600 | |
commit | bf3964c188d686424ff7b69a45941851b9f437f0 (patch) | |
tree | df67c636a6c0aa9f5369a335e1aa9d37d992bd85 /fs/xfs/xfs_attr.c | |
parent | Merge branch 'xfs-misc' into for-next (diff) | |
parent | xfs: assert that we hold the ilock for extent map access (diff) | |
download | wireguard-linux-bf3964c188d686424ff7b69a45941851b9f437f0.tar.xz wireguard-linux-bf3964c188d686424ff7b69a45941851b9f437f0.zip |
Merge branch 'xfs-extent-list-locking-fixes' into for-next
A set of fixes which makes sure we are taking the ilock whenever accessing the
extent list. This was associated with "Access to block zero" messages which
may result in extent list corruption.
Diffstat (limited to '')
-rw-r--r-- | fs/xfs/xfs_attr.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c index b86127072ac3..01b6a0102fbd 100644 --- a/fs/xfs/xfs_attr.c +++ b/fs/xfs/xfs_attr.c @@ -164,6 +164,7 @@ xfs_attr_get( { int error; struct xfs_name xname; + uint lock_mode; XFS_STATS_INC(xs_attr_get); @@ -174,9 +175,9 @@ xfs_attr_get( if (error) return error; - xfs_ilock(ip, XFS_ILOCK_SHARED); + lock_mode = xfs_ilock_attr_map_shared(ip); error = xfs_attr_get_int(ip, &xname, value, valuelenp, flags); - xfs_iunlock(ip, XFS_ILOCK_SHARED); + xfs_iunlock(ip, lock_mode); return(error); } |