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 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.

      		  		   	     	       - Ted
--
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