Re: [PATCH 2/3] jbd2 : Fix journal start by passing a parameter to specify if the caller can deal with ENOMEM

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

 



On May 25, 2011, at 20:22, Ted Ts'o wrote:
> On Wed, May 25, 2011 at 10:13:33AM +0200, Jan Kara wrote:
>>> 
>>>  ok.. I will do it as a separate patch.
>> Well, patch 2/3 does not really make too much sense without it (errok
>> parameter isn't used) so there's no reason to do it as a separate patch.
>> Just add it to this patch please.
> 
> Agreed; right now this whole patch series is a no-op, since errok
> isn't getting used for anything.  So fixing errok so it's passed to
> start_this_handle() seems to be more in the category of "fix the
> patch" more than anything else.
> 
> One more thing; perhaps we should be passing in a integer so we can
> pass in a flag word.  That way you don't need to have a fail_ok
> variant.  It's a lot more obvious if you have a call:
> 
> 	  handle = ext4_journal_start(inode, 1, JBD2_FAIL_OK);
> 
> What we can also do is this:
> 
> 	  handle = ext4_journal_start(inode, 1, JBD2_FAIL_OK | JBD2_TOPLEVEL);
> 
> What JBD2_TOPLEVEL means is that caller is from a top-level file
> system function, such as ext4_symlink() or ext4_chmod(), such that
> start_this_handle() can use GFP_KERNEL instead of GFP_NOFS.  GFP_NOFS
> is needed for any function that might get called by the direct reclaim
> path (i.e., the writepage() function).  But for the top-level
> symlink() or chmod() function, it's actually OK to allocate memory
> using GFP_KERNEL, since there's no potential recursion problem.

At this point, why not just pass GFP_KERNEL or GFP_NOFS directly, optionally with __GFP_NOFAIL?


Cheers, Andreas





--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux