public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@redhat.com>
To: Pavel Machek <pavel@suse.cz>
Cc: kernel list <linux-kernel@vger.kernel.org>,
	tytso@mit.edu, jack@suse.cz, sct@redhat.com,
	akpm@linux-foundation.org, adilger@sun.com,
	linux-ext4@vger.kernel.org
Subject: Re: ext3 read only handling
Date: Thu, 25 Sep 2008 10:15:26 -0500	[thread overview]
Message-ID: <48DBAB0E.3090608@redhat.com> (raw)
In-Reply-To: <20080925150319.GA4344@elf.ucw.cz>

Pavel Machek wrote:
> Inserting read-only ext3 SD card into a machine and trying to mount
> ext3 volume on it is very unnice :-(.
> 
> Is there easy way to "fix" -oro so that it does not write to the
> media?
> 
> (Machine died after I played with that SD card a bit more, but I can't
> easily reproduce that...)

Is the block device recognized as readonly?

ext3_load_journal() does things like:

        really_read_only = bdev_read_only(sb->s_bdev);
...
                        printk(KERN_INFO "EXT3-fs: INFO: recovery "
                                        "required on readonly
filesystem.\n");
                        if (really_read_only) {
                                printk(KERN_ERR "EXT3-fs: write access "
                                        "unavailable, cannot proceed.\n");
                                return -EROFS;
                        }

so it shouldn't have tried to replay the log ...

(replaying the log & writing to the device on a read-only mount is
another issue, but the behavior today is *supposed* to be such that if
you cannot write to the device, then even a read-only mount with a dirty
journal should fail gracefully, not explode ....)

-Eric

> 								Pavel
> 
> Sep 25 11:51:38 amd kernel: mmcblk0: mmc0:0002 SD1GB 975872KiB (ro)
> Sep 25 11:51:38 amd kernel:  mmcblk0: p1
> Sep 25 11:51:47 amd kernel: JBD: Clearing recovery information on
> journal
> Sep 25 11:51:47 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:47 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 4017
> Sep 25 11:51:47 amd kernel: Buffer I/O error on device mmcblk0p1,
> logical block 486
> Sep 25 11:51:47 amd kernel: lost page write due to I/O error on
> mmcblk0p1
> Sep 25 11:51:48 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:48 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 129
> Sep 25 11:51:48 amd kernel: Buffer I/O error on device mmcblk0p1,
> logical block 0
> Sep 25 11:51:48 amd kernel: lost page write due to I/O error on
> mmcblk0p1
> Sep 25 11:51:48 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 137
> Sep 25 11:51:48 amd kernel: Buffer I/O error on device mmcblk0p1,
> logical block 1
> Sep 25 11:51:48 amd kernel: lost page write due to I/O error on
> mmcblk0p1
> Sep 25 11:51:48 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:48 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 161
> Sep 25 11:51:48 amd kernel: Buffer I/O error on device mmcblk0p1,
> logical block 4
> Sep 25 11:51:48 amd kernel: lost page write due to I/O error on
> mmcblk0p1
> Sep 25 11:51:49 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:49 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 3977
> Sep 25 11:51:49 amd kernel: Buffer I/O error on device mmcblk0p1,
> logical block 481
> Sep 25 11:51:49 amd kernel: lost page write due to I/O error on
> mmcblk0p1
> Sep 25 11:51:49 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:49 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 262305
> Sep 25 11:51:49 amd kernel: Buffer I/O error on device mmcblk0p1,
> logical block 32772
> Sep 25 11:51:49 amd kernel: lost page write due to I/O error on
> mmcblk0p1
> Sep 25 11:51:50 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:50 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 524417
> Sep 25 11:51:50 amd kernel: Buffer I/O error on device mmcblk0p1,
> logical block 65536
> Sep 25 11:51:50 amd kernel: lost page write due to I/O error on
> mmcblk0p1
> Sep 25 11:51:50 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 524425
> Sep 25 11:51:50 amd kernel: Buffer I/O error on device mmcblk0p1,
> logical block 65537
> Sep 25 11:51:50 amd kernel: lost page write due to I/O error on
> mmcblk0p1
> Sep 25 11:51:50 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 524433
> Sep 25 11:51:50 amd kernel: Buffer I/O error on device mmcblk0p1,
> logical block 65538
> Sep 25 11:51:50 amd kernel: lost page write due to I/O error on
> mmcblk0p1
> Sep 25 11:51:50 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:50 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 528249
> Sep 25 11:51:50 amd kernel: Buffer I/O error on device mmcblk0p1,
> logical block 66015
> Sep 25 11:51:50 amd kernel: lost page write due to I/O error on
> mmcblk0p1
> Sep 25 11:51:51 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:51 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 1048705
> Sep 25 11:51:51 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 1048713
> Sep 25 11:51:51 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 1048721
> Sep 25 11:51:51 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:51 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 1052537
> Sep 25 11:51:52 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:52 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 4017
> Sep 25 11:51:52 amd kernel: kjournald starting.  Commit interval 5
> seconds
> Sep 25 11:51:52 amd kernel: ------------[ cut here ]------------
> Sep 25 11:51:52 amd kernel: WARNING: at /data/l/linux/fs/buffer.c:1186
> mark_buffer_dirty+0x57/0x70()
> Sep 25 11:51:52 amd kernel: Modules linked in:
> Sep 25 11:51:52 amd kernel: Pid: 16292, comm: mount Not tainted
> 2.6.27-rc6 #379
> Sep 25 11:51:52 amd kernel:  [<c022ae8f>] warn_on_slowpath+0x5f/0x90
> Sep 25 11:51:52 amd kernel:  [<c02a36c2>] __find_get_block+0x82/0x190
> Sep 25 11:51:52 amd kernel:  [<c024a611>] __lock_acquire+0x181/0x930
> Sep 25 11:51:52 amd kernel:  [<c024a611>] __lock_acquire+0x181/0x930
> Sep 25 11:51:52 amd kernel:  [<c03006b7>]
> journal_update_superblock+0x67/0xd0
> Sep 25 11:51:52 amd kernel:  [<c02a3c97>] mark_buffer_dirty+0x57/0x70
> Sep 25 11:51:52 amd kernel:  [<c03006bf>]
> journal_update_superblock+0x6f/0xd0
> Sep 25 11:51:52 amd kernel:  [<c0300b31>] journal_flush+0xa1/0x120
> Sep 25 11:51:52 amd kernel:  [<c02f4a6c>]
> ext3_mark_recovery_complete+0x2c/0x80
> Sep 25 11:51:52 amd kernel:  [<c02f747e>]
> ext3_fill_super+0x125e/0x1800
> Sep 25 11:51:52 amd kernel:  [<c039089f>] snprintf+0x1f/0x30
> Sep 25 11:51:52 amd kernel:  [<c02c0d00>] disk_name+0xb0/0xc0
> Sep 25 11:51:52 amd kernel:  [<c0284304>] get_sb_bdev+0x104/0x130
> Sep 25 11:51:52 amd kernel:  [<c026a299>] kstrdup+0x39/0x70
> Sep 25 11:51:52 amd kernel:  [<c02f4810>] ext3_get_sb+0x20/0x30
> Sep 25 11:51:52 amd kernel:  [<c02f6220>] ext3_fill_super+0x0/0x1800
> Sep 25 11:51:52 amd kernel:  [<c0283e33>] vfs_kern_mount+0x43/0x90
> Sep 25 11:51:52 amd kernel:  [<c0283edd>] do_kern_mount+0x3d/0xe0
> Sep 25 11:51:52 amd kernel:  [<c0299f71>] do_new_mount+0x81/0xc0
> Sep 25 11:51:52 amd kernel:  [<c029a127>] do_mount+0x177/0x1d0
> Sep 25 11:51:52 amd kernel:  [<c0297de0>]
> copy_mount_options+0x40/0x150
> Sep 25 11:51:52 amd kernel:  [<c029a1f7>] sys_mount+0x77/0xc0
> Sep 25 11:51:52 amd kernel:  [<c0203c3a>] syscall_call+0x7/0xb
> Sep 25 11:51:52 amd kernel:  =======================
> Sep 25 11:51:52 amd kernel: ---[ end trace c1e48b3b4f28cda2 ]---
> Sep 25 11:51:52 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:52 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 4017
> Sep 25 11:51:53 amd kernel: mmcblk0: error -110 transferring data
> Sep 25 11:51:53 amd kernel: end_request: I/O error, dev mmcblk0,
> sector 129
> Sep 25 11:51:53 amd kernel: __ratelimit: 6 callbacks suppressed
> Sep 25 11:51:53 amd kernel: Buffer I/O error on device mmcblk0p1,
> logical block 0
> Sep 25 11:51:53 amd kernel: lost page write due to I/O error on
> mmcblk0p1
> Sep 25 11:51:53 amd kernel: EXT3-fs: mounted filesystem with ordered
> data mode.
> Sep 25 11:52:04 amd kernel: mmc0: card 0002 removed
> 


  reply	other threads:[~2008-09-25 15:16 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-25 15:03 ext3 read only handling Pavel Machek
2008-09-25 15:15 ` Eric Sandeen [this message]
2009-01-27  9:56   ` Pavel Machek

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=48DBAB0E.3090608@redhat.com \
    --to=sandeen@redhat.com \
    --cc=adilger@sun.com \
    --cc=akpm@linux-foundation.org \
    --cc=jack@suse.cz \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@suse.cz \
    --cc=sct@redhat.com \
    --cc=tytso@mit.edu \
    /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