From: Lubos Uhliarik <uhliarik@seznam.cz>
To: tytso@mit.edu
Cc: linux-ext4@vger.kernel.org, lczerner@redhat.com, vojnar@fit.vutbr.cz
Subject: Re: [RFC][PATCH 0/1] ext4: Undelete Feature for Ext4
Date: Fri, 18 Apr 2014 18:01:38 +0200 [thread overview]
Message-ID: <1397836898.21164.13.camel@zerobox.home> (raw)
In-Reply-To: <20140318171425.GC8506@thunk.org>
Hi Tytso,
I tried to do some power failure tests, but I was unable to simulate an
error, as you described.
I analysed code by myself, but I don't see any problem with starting a
new transaction in function ext4_ext_rm_leaf. If in this function new
transaction is created and system will crash in the middle of deleting
the file, eh_entries in extent_header will have correct value, so it
shouldn't cause any problem (eh_entries is decremented in the same
transaction, as zeroing out ex->len etc.).
I hope, you will understand, what I want to say.
If I'm wrong, please let me know.
Regards,
Lubos
tytso@mit.edu píše v Út 18. 03. 2014 v 13:14 -0400:
> On Tue, Mar 18, 2014 at 04:09:30PM +0100, Lubos Uhliarik wrote:
> > The main changes in patch are following:
> >
> > a) commented out zeroing ex->ee_len, ee->start_hi and ee->start_lo,
> > because these entries are essential for undelete process
>
> The reason why we have to zero out ex->ee_len, etc. is because the
> truncate operation can sometimes span multiple journal transactions.
> So as a result, we need to keep the file system consistent if we are
> interrupted (i.e., via a power fail event) while in the middle of a
> truncate operation.
>
> It's a rare case, but it can happen if the journal is almost full at
> the time when the truncate eoperation has started, such that there is
> no room for to exntend the transaction handle, and so we are forced to
> start a new transaction (and possibly wait for a journal checkpoint
> operation).
>
> In theory, it would be possible to figure out in advance whether or
> not we could fit the truncate in a single transaction, but it would
> require making the truncate operation be a two-pass operation --- once
> to determine how many blocks needs to be modified, and once to
> actually do the truncate operation.
>
> > This patch shouldn't break ext4, I tested it with xfs_tests and tests
> > were successfull.
>
> I'm guessing you didn't do power fail testing --- and this is very
> important when messing with the design truncate/unlink code path.
>
> Regards,
>
> - Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2014-04-18 16:01 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-18 15:09 [RFC][PATCH 0/1] ext4: Undelete Feature for Ext4 Lubos Uhliarik
2014-03-18 17:14 ` tytso
2014-03-18 17:28 ` Lukáš Czerner
2014-04-18 16:01 ` Lubos Uhliarik [this message]
2014-05-08 21:11 ` Lubos Uhliarik
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=1397836898.21164.13.camel@zerobox.home \
--to=uhliarik@seznam.cz \
--cc=lczerner@redhat.com \
--cc=linux-ext4@vger.kernel.org \
--cc=tytso@mit.edu \
--cc=vojnar@fit.vutbr.cz \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).