diff options
| author | Kefeng Wang <wangkefeng.wang@huawei.com> | 2026-09-21 15:10:30 +0800 |
|---|---|---|
| committer | Carlos Maiolino <cem@kernel.org> | 2026-10-05 10:04:41 +0200 |
| commit | 23f91a51425ed3d4a5c42978fc25f1087611e4ba (patch) | |
| tree | 995aaab0d1bacbcce7a88aec7f25ae2a55d9ea17 /tools/perf/scripts/python/stackcollapse.py | |
| parent | a90ee4305c4a5df72c11b31dacfdc76e00fcf78a (diff) | |
xfs: fix NOFS state corruption in btree split worker
xfs_btree_split_worker() calls xfs_trans_set_context() and
xfs_trans_clear_context() on the caller's transaction, overwriting
tp->t_pflags with the worker's NOFS state. When the caller already has
PF_MEMALLOC_NOFS set (e.g. xfs_end_ioend_write, xfs_dio_write_end_io),
the corrupted tp->t_pflags causes xfs_trans_free() to erroneously clear
the caller's NOFS protection.
Use memalloc_nofs_save/restore with a local variable instead so
tp->t_pflags is never touched.
Closes: https://sashiko.dev/#/patchset/20260902131653.1338227-1-wangkefeng.wang@huawei.com
Fixes: 756b1c343333 ("xfs: use current->journal_info for detecting transaction recursion")
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
