Skip to content

Commit ace74e7

Browse files
committed
xfs: annotate grabbing the realtime bitmap/summary locks in growfs
Use XFS_ILOCK_RT{BITMAP,SUM} to annotate grabbing the rt bitmap and summary locks when we grow the realtime volume, just like we do most everywhere else. This shuts up lockdep warnings about grabbing the ILOCK class of locks recursively: ============================================ WARNING: possible recursive locking detected 5.9.0-rc4-djw #rc4 Tainted: G O -------------------------------------------- xfs_growfs/4841 is trying to acquire lock: ffff888035acc230 (&xfs_nondir_ilock_class){++++}-{3:3}, at: xfs_ilock+0xac/0x1a0 [xfs] but task is already holding lock: ffff888035acedb0 (&xfs_nondir_ilock_class){++++}-{3:3}, at: xfs_ilock+0xac/0x1a0 [xfs] other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&xfs_nondir_ilock_class); lock(&xfs_nondir_ilock_class); *** DEADLOCK *** May be due to missing lock nesting notation Signed-off-by: Darrick J. Wong <[email protected]> Reviewed-by: Chandan Babu R <[email protected]>
1 parent 7249c95 commit ace74e7

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

fs/xfs/xfs_rtalloc.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,7 +1024,7 @@ xfs_growfs_rt(
10241024
/*
10251025
* Lock out other callers by grabbing the bitmap inode lock.
10261026
*/
1027-
xfs_ilock(mp->m_rbmip, XFS_ILOCK_EXCL);
1027+
xfs_ilock(mp->m_rbmip, XFS_ILOCK_EXCL | XFS_ILOCK_RTBITMAP);
10281028
xfs_trans_ijoin(tp, mp->m_rbmip, XFS_ILOCK_EXCL);
10291029
/*
10301030
* Update the bitmap inode's size ondisk and incore. We need
@@ -1038,7 +1038,7 @@ xfs_growfs_rt(
10381038
/*
10391039
* Get the summary inode into the transaction.
10401040
*/
1041-
xfs_ilock(mp->m_rsumip, XFS_ILOCK_EXCL);
1041+
xfs_ilock(mp->m_rsumip, XFS_ILOCK_EXCL | XFS_ILOCK_RTSUM);
10421042
xfs_trans_ijoin(tp, mp->m_rsumip, XFS_ILOCK_EXCL);
10431043
/*
10441044
* Update the summary inode's size. We need to update the

0 commit comments

Comments
 (0)