aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/libxfs/xfs_bmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/libxfs/xfs_bmap.c')
-rw-r--r--fs/xfs/libxfs/xfs_bmap.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
index b5eb4743f75a..8c39cc852e4b 100644
--- a/fs/xfs/libxfs/xfs_bmap.c
+++ b/fs/xfs/libxfs/xfs_bmap.c
@@ -1221,22 +1221,20 @@ xfs_bmap_add_attrfork(
1221 goto bmap_cancel; 1221 goto bmap_cancel;
1222 if (!xfs_sb_version_hasattr(&mp->m_sb) || 1222 if (!xfs_sb_version_hasattr(&mp->m_sb) ||
1223 (!xfs_sb_version_hasattr2(&mp->m_sb) && version == 2)) { 1223 (!xfs_sb_version_hasattr2(&mp->m_sb) && version == 2)) {
1224 __int64_t sbfields = 0; 1224 bool mod_sb = false;
1225 1225
1226 spin_lock(&mp->m_sb_lock); 1226 spin_lock(&mp->m_sb_lock);
1227 if (!xfs_sb_version_hasattr(&mp->m_sb)) { 1227 if (!xfs_sb_version_hasattr(&mp->m_sb)) {
1228 xfs_sb_version_addattr(&mp->m_sb); 1228 xfs_sb_version_addattr(&mp->m_sb);
1229 sbfields |= XFS_SB_VERSIONNUM; 1229 mod_sb = true;
1230 } 1230 }
1231 if (!xfs_sb_version_hasattr2(&mp->m_sb) && version == 2) { 1231 if (!xfs_sb_version_hasattr2(&mp->m_sb) && version == 2) {
1232 xfs_sb_version_addattr2(&mp->m_sb); 1232 xfs_sb_version_addattr2(&mp->m_sb);
1233 sbfields |= (XFS_SB_VERSIONNUM | XFS_SB_FEATURES2); 1233 mod_sb = true;
1234 } 1234 }
1235 if (sbfields) { 1235 spin_unlock(&mp->m_sb_lock);
1236 spin_unlock(&mp->m_sb_lock); 1236 if (mod_sb)
1237 xfs_mod_sb(tp, sbfields); 1237 xfs_mod_sb(tp);
1238 } else
1239 spin_unlock(&mp->m_sb_lock);
1240 } 1238 }
1241 1239
1242 error = xfs_bmap_finish(&tp, &flist, &committed); 1240 error = xfs_bmap_finish(&tp, &flist, &committed);