From: Yafang Shao <shaoyafang@xxxxxxxxxxxxxx> This patchset avoids transaction reservation recursion by reintroducing the discarded PF_FSTRANS in a new way, suggested by Dave. In this new implementation, two new helpers are introduced, which are xfs_trans_context_{begin, end}, suggested by Christoph. And re-using the task->journal_info to indicates whehter the task is in fstrans or not, suggested by Willy. v4: - retitle from "xfs: introduce task->in_fstrans for transaction reservation recursion protection" - reuse current->journal_info, per Willy Yafang Shao (2): xfs: avoid double restore PF_MEMALLOC_NOFS if transaction reservation fails xfs: avoid transaction reservation recursion Cc: Dave Chinner <david@xxxxxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Cc: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> fs/iomap/buffered-io.c | 4 ++-- fs/xfs/libxfs/xfs_btree.c | 2 ++ fs/xfs/xfs_aops.c | 3 +++ fs/xfs/xfs_linux.h | 19 +++++++++++++++++++ fs/xfs/xfs_trans.c | 21 +++++++++++++++------ 5 files changed, 41 insertions(+), 8 deletions(-) -- 2.18.1