[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87632ckqcy.fsf@openvz.org>
Date: Tue, 25 May 2010 18:28:29 +0400
From: Dmitry Monakhov <dmonakhov@...nvz.org>
To: tytso@....edu
Cc: linux-ext4@...r.kernel.org, jack@...e.cz,
aneesh.kumar@...ux.vnet.ibm.com, tytso@....ed
Subject: Re: [PATCH] ext4: restart ext4_ext_remove_space() after transaction restart
tytso@....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.
Even more than this, i've changed the mistypo and have got massive
complain from fsck
Block bitmap differences: -7954 -(33836--33854)
Fix<y>? yes
Free blocks count wrong for group #0 (24170, counted=24171).
Fix<y>? yes
...
Currently i'm digging the issue.
>
>> + err = 0;
>> + goto again;
>> + }
>> + ext4_clear_inode_state(inode, EXT4_STATE_EXT_TRUNC);
>> ext4_journal_stop(handle);
>>
>> return err;
>
> - Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists