diff options
| author | Yun Zhou <yun.zhou@windriver.com> | 2026-07-31 11:10:10 +0800 |
|---|---|---|
| committer | Carlos Maiolino <cem@kernel.org> | 2026-08-21 09:09:53 +0200 |
| commit | 41a28c865d1d5843f8cb9e0af17a8f4d9e2961ff (patch) | |
| tree | 1917f9e8569e892fbca1815924fd4bc64fafb1f8 /tools/perf/scripts/python/task-analyzer.py | |
| parent | 818bebeb63dd6bf5f4e07e145f6cdbace520a34c (diff) | |
xfs: don't hold buffer locks across sync transaction commit in xfs_sync_sb_buf
xfs_sync_sb_buf() holds sb/rtsb buffer locks across a synchronous
xfs_trans_commit(), which flushes the CIL push workqueue internally.
If shutdown occurs during the CIL push, xfs_buf_item_unpin() needs to
lock these buffers to fail them, causing a deadlock:
setlabel: holds buf lock -> flush_workqueue(xfs-cil)
CIL push worker: xfs_buf_item_unpin -> xfs_buf_lock(same buf)
Remove the xfs_trans_bhold() calls so that commit releases the buffer
locks normally. After the sync commit, re-acquire the buffers via
mp->m_sb_bp / mp->m_rtsb_bp for the on-disk writeback.
Fixes: f7664b31975b ("xfs: implement online get/set fs label")
Reported-by: syzbot+837bcd54843dd6262f2f@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=837bcd54843dd6262f2f
Cc: stable@vger.kernel.org
Signed-off-by: Yun Zhou <yun.zhou@windriver.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions
