From: "Ishan O. Jayawardena" <ioshadi@sltnet.lk>
To: linux-kernel@vger.kernel.org
Subject: Re: PROBLEM: ext2/mount - multiple mounts corrupts inodes
Date: Thu, 31 Jan 2002 20:00:21 -0500 [thread overview]
Message-ID: <3C59E8A5.6878F0FD@sltnet.lk> (raw)
Greetings everyone,
I'm afraid that try as I may, I couldn't reproduce Kris's symptoms.
This is with 2.4.18pre7aa1, No HIGHMEM, Plus a patch from _Andreas
Dilger_ (appended below), e2fsprogs 1.25, single IDE disk. Everything
works as expected.
Alexander Viro wrote:
> WTF??? Very interesting... What about kernel messages? It looks like
> stat(2) failing.
> Just in case - could you put the same find before the second attempt of
> mount?
Did that. Still No Problem. Gentlemen, this is a low end (real) IBM
machine with 64 MB SDRAM, 333 MHz Celeron (pre-Coppermine), 128 kb L2
cache (16 kb (*2?) L1), on sloooow vesafb, in X, while compiling
gcc-3.0.3 for C only :)
(I even did away with the umounts after the first runs were
successful... then just kept mounting over and over on the same
directory.) I'm afraid I can't test with plain 2.4.18-pre7 or anything
else as this is the only 2.4 kernel I have, and Kris did say the faults
were not reproducible on 2.2. Everything was done as root.
My Script:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#!/bin/bash
DEVICE=./loopdev
MOUNT=/mnt/tmp
# umount $MOUNT
dd if=/dev/zero of=$DEVICE bs=1k count=1000
mke2fs -v -F $DEVICE
# rm -rf $MOUNT
# mkdir -p $MOUNT
mount -v -t ext2 -o loop $DEVICE $MOUNT
cp -vr /bin/tar $MOUNT
cp -vr /bin/zcat $MOUNT
#sleep 5
#sync
find $MOUNT -ls
mount -t ext2 -o loop $DEVICE $MOUNT
find $MOUNT -ls
# umount $MOUNT
# umount $MOUNT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Andreas's patch (adopted for 2.4.1[78])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BEGIN PATCH
--- linux/fs/ext2/super.c Mon Jan 28 14:10:16 2002
+++ linux/fs/ext2/super.c.mod Mon Jan 28 13:41:06 2002
@@ -286,14 +286,14 @@ static int ext2_setup_super (struct supe
struct ext2_super_block * es,
int read_only)
{
- int res = 0;
+ if (read_only)
+ return 0;
if (le32_to_cpu(es->s_rev_level) > EXT2_MAX_SUPP_REV) {
printk ("EXT2-fs warning: revision level too high, "
"forcing read-only mode\n");
- res = MS_RDONLY;
+ sb->s_flags |= MS_RDONLY;
+ return MS_RDONLY;
}
- if (read_only)
- return res;
if (!(sb->u.ext2_sb.s_mount_state & EXT2_VALID_FS))
printk ("EXT2-fs warning: mounting unchecked fs, "
"running e2fsck is recommended\n");
@@ -328,7 +328,7 @@ static int ext2_setup_super (struct supe
ext2_check_inodes_bitmap (sb);
}
#endif
- return res;
+ return 0;
}
static int ext2_check_descriptors (struct super_block * sb)
@@ -751,8 +751,9 @@ int ext2_remount (struct super_block * s
* by e2fsck since we originally mounted the partition.)
*/
sb->u.ext2_sb.s_mount_state = le16_to_cpu(es->s_state);
- if (!ext2_setup_super (sb, es, 0))
- sb->s_flags &= ~MS_RDONLY;
+ if (ext2_setup_super (sb, es, 0))
+ return -EROFS;
+ sb->s_flags &= ~MS_RDONLY;
}
ext2_sync_super(sb, es);
return 0;
~~~~~~~~~~~~~~~~~~~~~ END PATCH
Hope this helps...
Cheerio!
alvin
~~~~
We build a virtual shell around us to keep away the sorrows of life.
Most of us are very good at it... Those who aren't good enough, become
saints.
.
next reply other threads:[~2002-01-31 13:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-01 1:00 Ishan O. Jayawardena [this message]
-- strict thread matches above, loose matches on Subject: below --
2002-01-31 23:46 PROBLEM: ext2/mount - multiple mounts corrupts inodes Kris Urquhart
2002-01-31 17:31 Kris Urquhart
2002-01-31 17:28 Kris Urquhart
2002-01-31 21:57 ` Alexander Viro
2002-01-31 1:27 Kris Urquhart
2002-01-31 4:45 ` Andreas Dilger
2002-01-31 5:05 ` Alexander Viro
2002-01-30 23:07 Kris Urquhart
2002-01-30 23:37 ` Andreas Dilger
2002-01-31 0:14 ` Alexander Viro
2002-01-31 6:35 ` H. Peter Anvin
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=3C59E8A5.6878F0FD@sltnet.lk \
--to=ioshadi@sltnet.lk \
--cc=linux-kernel@vger.kernel.org \
/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.