On Thu 24-08-17 16:12:47, Anshuman Khandual wrote: > xfs_btree_split() calls xfs_btree_split_worker() with args.kswapd set > if current->flags alrady has PF_KSWAPD. Hence we should not again add > PF_KSWAPD into the current flags inside kswapd context. So drop this > redundant flag addition.
I am not familiar with the code but your change seems incorect. The whole point of args->kswapd is to convey the kswapd context to the worker which is obviously running in a different context. So this patch loses the kswapd context. > Signed-off-by: Anshuman Khandual <khand...@linux.vnet.ibm.com> > --- > fs/xfs/libxfs/xfs_btree.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/xfs/libxfs/xfs_btree.c b/fs/xfs/libxfs/xfs_btree.c > index e0bcc4a..b3c85e3 100644 > --- a/fs/xfs/libxfs/xfs_btree.c > +++ b/fs/xfs/libxfs/xfs_btree.c > @@ -2895,7 +2895,7 @@ struct xfs_btree_split_args { > * in any way. > */ > if (args->kswapd) > - new_pflags |= PF_MEMALLOC | PF_SWAPWRITE | PF_KSWAPD; > + new_pflags |= PF_MEMALLOC | PF_SWAPWRITE; > > current_set_flags_nested(&pflags, new_pflags); > > -- > 1.8.5.2 -- Michal Hocko SUSE Labs