Skip to content

Commit ac383de

Browse files
Dave Chinnerdchinner
authored andcommitted
xfs: growfs not aware of sb_meta_uuid
Adding this simple change to xfstests:common/rc::_scratch_mkfs_xfs: + if [ $mkfs_status -eq 0 ]; then + xfs_admin -U generate $SCRATCH_DEV > /dev/null + fi triggers all sorts of errors in xfstests. xfs/104 is an example, where growfs fails with a UUID mismatch corruption detected by xfs_agf_write_verify() when trying to write the first new AG headers. Fix this problem by making sure we copy the sb_meta_uuid into new metadata written by growfs. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
1 parent bbf155a commit ac383de

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

fs/xfs/xfs_fsops.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ xfs_growfs_data_private(
250250
agf->agf_freeblks = cpu_to_be32(tmpsize);
251251
agf->agf_longest = cpu_to_be32(tmpsize);
252252
if (xfs_sb_version_hascrc(&mp->m_sb))
253-
uuid_copy(&agf->agf_uuid, &mp->m_sb.sb_uuid);
253+
uuid_copy(&agf->agf_uuid, &mp->m_sb.sb_meta_uuid);
254254

255255
error = xfs_bwrite(bp);
256256
xfs_buf_relse(bp);
@@ -273,7 +273,7 @@ xfs_growfs_data_private(
273273
if (xfs_sb_version_hascrc(&mp->m_sb)) {
274274
agfl->agfl_magicnum = cpu_to_be32(XFS_AGFL_MAGIC);
275275
agfl->agfl_seqno = cpu_to_be32(agno);
276-
uuid_copy(&agfl->agfl_uuid, &mp->m_sb.sb_uuid);
276+
uuid_copy(&agfl->agfl_uuid, &mp->m_sb.sb_meta_uuid);
277277
}
278278

279279
agfl_bno = XFS_BUF_TO_AGFL_BNO(mp, bp);
@@ -309,7 +309,7 @@ xfs_growfs_data_private(
309309
agi->agi_newino = cpu_to_be32(NULLAGINO);
310310
agi->agi_dirino = cpu_to_be32(NULLAGINO);
311311
if (xfs_sb_version_hascrc(&mp->m_sb))
312-
uuid_copy(&agi->agi_uuid, &mp->m_sb.sb_uuid);
312+
uuid_copy(&agi->agi_uuid, &mp->m_sb.sb_meta_uuid);
313313
if (xfs_sb_version_hasfinobt(&mp->m_sb)) {
314314
agi->agi_free_root = cpu_to_be32(XFS_FIBT_BLOCK(mp));
315315
agi->agi_free_level = cpu_to_be32(1);

0 commit comments

Comments
 (0)