Re: Error testing ext3 on brd ramdisk

From: Jorge Boncompte [DTI2]
Date: Fri Mar 13 2009 - 13:11:21 EST


Nick Piggin escribió:
On Tue, Mar 10, 2009 at 05:49:13PM +0100, Jorge Boncompte [DTI2] wrote:
Nick Piggin escribió:
Ah, of course, it would be due to directory-in-pagecache. You need
the following patch if you expect this to work.

And that confirms the ext3 problem is a different one because it
doesn't use directory in pagecache I think. Well, I'll look at
that one tomorrow.

Thanks,
Nick

---
fs/super.c | 2 ++
1 file changed, 2 insertions(+)

Index: linux-2.6/fs/super.c
===================================================================
--- linux-2.6.orig/fs/super.c
+++ linux-2.6/fs/super.c
@@ -644,6 +644,8 @@ int do_remount_sb(struct super_block *sb
acct_auto_close(sb);
shrink_dcache_sb(sb);
fsync_super(sb);
+ if (flags & MS_RDONLY)
+ invalidate_bdev(sb->s_bdev);

/* If we are remounting RDONLY and current sb is read/write,
make sure there are no rw files opened */




With this applied it seems I cannot reproduce the corruption, I have

Ah, that sounds promising.

to do more tests, but the box oopses on reboot after doing "umount -na -r".

Oh, silly me, s_bdev will be NULL for non block device based filesystems.
If you check for s_bdev != NULL there too, it should work.

Hi Nick, no problems noticed in the last days running with the below patch...

--- linux-2.6.29-rc8/fs/super.c 2009-03-13 13:46:19 +0100
+++ kernel/fs/super.c 2009-03-13 13:47:50 +0100
@@ -647,6 +647,8 @@ int do_remount_sb(struct super_block *sb
acct_auto_close(sb);
shrink_dcache_sb(sb);
fsync_super(sb);
+ if (sb->s_bdev && (flags & MS_RDONLY))
+ invalidate_bdev(sb->s_bdev);

/* If we are remounting RDONLY and current sb is read/write,
make sure there are no rw files opened */

--
==============================================================
Jorge Boncompte - Ingenieria y Gestion de RED
DTI2 - Desarrollo de la Tecnologia de las Comunicaciones
--------------------------------------------------------------
C/ Abogado Enriquez Barrios, 5 14004 CORDOBA (SPAIN)
Tlf: +34 957 761395 / FAX: +34 957 450380
==============================================================
- Sin pistachos no hay Rock & Roll...
- Without wicker a basket cannot be made.
==============================================================

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/