All of lore.kernel.org
 help / color / mirror / Atom feed
From: tytso@mit.edu
To: Dmitry Monakhov <dmonakhov@openvz.org>
Cc: linux-ext4@vger.kernel.org, jack@suse.cz,
	aneesh.kumar@linux.vnet.ibm.com, tytso@mit.ed
Subject: Re: [PATCH] ext4: restart ext4_ext_remove_space() after transaction restart
Date: Tue, 25 May 2010 17:38:17 -0400	[thread overview]
Message-ID: <20100525213817.GO5556@thunk.org> (raw)
In-Reply-To: <87632ckqcy.fsf@openvz.org>

On Tue, May 25, 2010 at 06:28:29PM +0400, Dmitry Monakhov wrote:
> tytso@mit.edu writes:
> 
> > On Thu, Apr 22, 2010 at 08:31:11AM +0400, Dmitry Monakhov wrote:
> >> @@ -2480,6 +2480,11 @@ static int ext4_ext_remove_space(struct inode *inode, ext4_lblk_t start)
> >>  out:
> >>  	ext4_ext_drop_refs(path);
> >>  	kfree(path);
> >> +	if (err == EAGAIN) {
> >
> > Surely this should be "err == -EAGAIN", no?  I'm curious how this
> > patch worked for with this typo....
> As usually it fix one thing, and broke another :(.
> So in case of alloc/truncate restart truncate will be aborted,
> so i_size != i_disk_size which must be caught by fsck (my test run
> it every time) but this never happens which is very strange.
> The only reason i can explain this that truncate was called second
> time which is probable due to should_retry_alloc logic.

Does adding the optimization I suggested help?  I was nervous because
we don't immediately abort the loop after the rm_leaf function returns
-EAGAIN.  And disentangling the code to free the buffer references
from the other processing that was happening was difficult, and I was
worried about other potential side effects when the code tried to
modify blocks that were already added to the transaction.

       	      	   		      	     - Ted

  reply	other threads:[~2010-05-25 21:38 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-22  4:31 [PATCH] ext4: restart ext4_ext_remove_space() after transaction restart Dmitry Monakhov
2010-04-22  7:33 ` Dmitry Monakhov
2010-04-26 16:09 ` Jan Kara
2010-05-25 13:32 ` tytso
2010-05-25 14:28   ` Dmitry Monakhov
2010-05-25 21:38     ` tytso [this message]
2010-05-26  8:53       ` Dmitry Monakhov
2010-05-25 21:44     ` tytso
2010-05-26  9:12       ` Dmitry Monakhov
2010-05-26 11:51         ` [PATCH] ext4: restart ext4_ext_remove_space() after transaction restart V2 Dmitry Monakhov
2010-05-26 13:23           ` tytso
2010-05-26 13:46             ` Jan Kara
2010-05-26 14:23             ` Dmitry Monakhov
2010-05-26 14:45               ` tytso
2010-05-26 14:47                 ` tytso
2010-05-26 17:22                   ` Dmitry Monakhov
2010-05-25 13:55 ` [PATCH] ext4: restart ext4_ext_remove_space() after transaction restart tytso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100525213817.GO5556@thunk.org \
    --to=tytso@mit.edu \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=dmonakhov@openvz.org \
    --cc=jack@suse.cz \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.ed \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.