Re: [PATCH V2 1/5] xfs: Remove kmem_zone_alloc() usage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jul 10, 2020 at 05:08:04PM +0100, Christoph Hellwig wrote:
> > diff --git a/fs/xfs/xfs_icache.c b/fs/xfs/xfs_icache.c
> > index 5daef654956cb..8c3fe7ef56e27 100644
> > --- a/fs/xfs/xfs_icache.c
> > +++ b/fs/xfs/xfs_icache.c
> > @@ -35,15 +35,20 @@ xfs_inode_alloc(
> >  	xfs_ino_t		ino)
> >  {
> >  	struct xfs_inode	*ip;
> > +	gfp_t			gfp_mask = GFP_KERNEL;
> >  
> >  	/*
> > -	 * if this didn't occur in transactions, we could use
> > -	 * KM_MAYFAIL and return NULL here on ENOMEM. Set the
> > -	 * code up to do this anyway.
> > +	 * If this is inside a transaction, we can not fail here,
> > +	 * otherwise we can return NULL on ENOMEM.
> >  	 */
> > -	ip = kmem_zone_alloc(xfs_inode_zone, 0);
> > +
> > +	if (current->flags & PF_MEMALLOC_NOFS)
> > +		gfp_mask |= __GFP_NOFAIL;
> 
> I'm a little worried about this change in beavior here.  Can we
> just keep the unconditional __GFP_NOFAIL and if we really care do the
> change separately after the series?  At that point it should probably
> use the re-added PF_FSTRANS flag as well.

Checking PF_FSTRANS was what I suggested should be done here, not
PF_MEMALLOC_NOFS...

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux