LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: "Duane Griffin" <duaneg@dghda.com>
To: linux-ext4@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, Theodore Tso <tytso@mit.edu>,
sct@redhat.com, akpm@linux-foundation.org, adilger@clusterfs.com,
Duane Griffin <duaneg@dghda.com>
Subject: [RFC, PATCH 0/6] ext3: do not modify data on-disk when mounting read-only filesystem
Date: Thu, 6 Mar 2008 01:59:08 +0000 [thread overview]
Message-ID: <1204768754-29655-1-git-send-email-duaneg@dghda.com> (raw)
At present, as discussed in this LKML thread,
http://marc.info/?l=linux-kernel&m=117607695406580, when a dirty ext3
filesystem is mounted read-only it writes to the disk while replaying the
journal log and cleaning up the orphan list. This behaviour may surprise users
and can potentially cause data corruption/loss (e.g. if a system is suspended,
booted into a different OS, then resumed).
This patch series attempts to address this by using a block translation table
instead of replaying the journal on a read-only filesystem.
Patches 1-3 are independent cleanups/bug-fixes for things I came across while
working on this. They could be submitted separately and are not required for
following patches.
Patch 4 is a refactoring change that simplifies the code prior to later
substantive changes.
Patch 5 introduces the translation table and support for a truly read-only
journal into jbd.
Patch 6 uses the facility introduced in patch 5 to add support for true
read-only ext3.
For testing I've been using qemu VMs to create and mount dirtied filesystems. I
have a set of scripts that fully automates creating a dirty filesystem then
checking mounting read-only and read-write produces consistent results. On my
system it can get through around ~30 iteration overnight. If anyone is
interested in the scripts please let me know. Any suggestions for additional
tests or enhancements that could be made to the scripts would be gratefully
received.
TODO:
* Add R/W remount support
* Port to ext4
Cheers,
Duane Griffin.
> git diff --stat origin
fs/ext3/balloc.c | 2 +-
fs/ext3/ialloc.c | 2 +-
fs/ext3/inode.c | 8 +-
fs/ext3/resize.c | 2 +-
fs/ext3/super.c | 123 ++++++++++-----
fs/ext3/xattr.c | 8 +-
fs/jbd/checkpoint.c | 2 +-
fs/jbd/commit.c | 2 +-
fs/jbd/journal.c | 68 +++++---
fs/jbd/recovery.c | 402 +++++++++++++++++++++++++++++++++--------------
fs/jbd/revoke.c | 133 ++++++----------
fs/ocfs2/journal.c | 4 +-
include/linux/ext3_fs.h | 7 +
include/linux/jbd.h | 41 +++++-
14 files changed, 516 insertions(+), 288 deletions(-)
next reply other threads:[~2008-03-06 2:06 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-06 1:59 Duane Griffin [this message]
[not found] ` <1204768754-29655-2-git-send-email-duaneg@dghda.com>
2008-03-06 1:59 ` [RFC, PATCH 1/6] jbd: eliminate duplicated code in revocation table init/destroy functions Duane Griffin
[not found] ` <1204768754-29655-3-git-send-email-duaneg@dghda.com>
2008-03-06 1:59 ` [RFC, PATCH 2/6] jbd: replace potentially false assertion with if block Duane Griffin
2008-03-08 14:52 ` Christoph Hellwig
[not found] ` <1204768754-29655-4-git-send-email-duaneg@dghda.com>
2008-03-06 1:59 ` [RFC, PATCH 3/6] jbd: only create debugfs entries if cache initialisation is successful Duane Griffin
[not found] ` <1204768754-29655-5-git-send-email-duaneg@dghda.com>
2008-03-06 1:59 ` [RFC, PATCH 4/6] jbd: refactor nested journal log recovery loop into separate functions Duane Griffin
2008-03-08 14:53 ` Christoph Hellwig
2008-03-08 18:40 ` Duane Griffin
2008-03-11 14:35 ` Jan Kara
2008-03-12 1:02 ` Duane Griffin
2008-03-12 10:50 ` Jan Kara
[not found] ` <1204768754-29655-6-git-send-email-duaneg@dghda.com>
2008-03-06 1:59 ` [RFC, PATCH 5/6] jbd: add support for read-only log recovery Duane Griffin
2008-03-11 15:05 ` Jan Kara
2008-03-12 1:40 ` Duane Griffin
2008-03-12 10:51 ` Jan Kara
[not found] ` <1204768754-29655-7-git-send-email-duaneg@dghda.com>
2008-03-06 1:59 ` [RFC, PATCH 6/6] ext3: do not write to the disk when mounting a dirty read-only filesystem Duane Griffin
2008-03-06 7:17 ` Andreas Dilger
2008-03-06 11:19 ` Duane Griffin
2008-03-11 15:11 ` Jan Kara
2008-03-12 2:42 ` Duane Griffin
2008-03-12 10:53 ` Jan Kara
2008-03-06 3:42 ` [RFC, PATCH 0/6] ext3: do not modify data on-disk when mounting " Andrew Morton
2008-03-06 11:20 ` Duane Griffin
2008-03-13 3:22 ` Daniel Phillips
2008-03-13 12:35 ` Duane Griffin
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=1204768754-29655-1-git-send-email-duaneg@dghda.com \
--to=duaneg@dghda.com \
--cc=adilger@clusterfs.com \
--cc=akpm@linux-foundation.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sct@redhat.com \
--cc=tytso@mit.edu \
--subject='Re: [RFC, PATCH 0/6] ext3: do not modify data on-disk when mounting read-only filesystem' \
/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
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).