On Mon 16-08-10 19:58:01, David Rientjes wrote: > Removes the dependency on __GFP_NOFAIL by looping indefinitely in the > caller. > > The error handling when kzalloc() returns NULL in start_this_handle() > was removed since it was unreachable. Thanks! I've added the patch to my tree. Since rc1 is over, I think this is a material for the next merge window, right? I can take care of pushing it. If you want to push the change yourself, feel free to add Acked-by: Jan Kara <jack@xxxxxxx> Honza > > Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx> > --- > fs/jbd/journal.c | 5 ++++- > fs/jbd/transaction.c | 14 ++++++-------- > 2 files changed, 10 insertions(+), 9 deletions(-) > > diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c > --- a/fs/jbd/journal.c > +++ b/fs/jbd/journal.c > @@ -301,7 +301,10 @@ int journal_write_metadata_buffer(transaction_t *transaction, > */ > J_ASSERT_BH(bh_in, buffer_jbddirty(bh_in)); > > - new_bh = alloc_buffer_head(GFP_NOFS|__GFP_NOFAIL); > + do { > + /* FIXME: this may potentially loop forever */ > + new_bh = alloc_buffer_head(GFP_NOFS); > + } while (!new_bh); > /* keep subsequent assertions sane */ > new_bh->b_state = 0; > init_buffer(new_bh, NULL, NULL); > diff --git a/fs/jbd/transaction.c b/fs/jbd/transaction.c > --- a/fs/jbd/transaction.c > +++ b/fs/jbd/transaction.c > @@ -98,14 +98,12 @@ static int start_this_handle(journal_t *journal, handle_t *handle) > } > > alloc_transaction: > - if (!journal->j_running_transaction) { > - new_transaction = kzalloc(sizeof(*new_transaction), > - GFP_NOFS|__GFP_NOFAIL); > - if (!new_transaction) { > - ret = -ENOMEM; > - goto out; > - } > - } > + if (!journal->j_running_transaction) > + do { > + /* FIXME: this may potentially loop forever */ > + new_transaction = kzalloc(sizeof(*new_transaction), > + GFP_NOFS); > + } while (!new_transaction); > > jbd_debug(3, "New handle %p going live.\n", handle); > -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- 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