linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* ext4 fails on ext2 filesystems
@ 2009-01-18  1:35 Jörg Sommer
  2009-01-18  2:38 ` Theodore Tso
  2009-01-19 23:30 ` Andreas Dilger
  0 siblings, 2 replies; 8+ messages in thread
From: Jörg Sommer @ 2009-01-18  1:35 UTC (permalink / raw)
  To: linux-ext4

[-- Attachment #1: Type: text/plain, Size: 3230 bytes --]

Hi,

I've an ext2 filesystem as root filesystem, because it's mounted readonly
for the most part. I've built in the support for ext[234] in the kernel.
Ext4 takes precedence over ext2 and it mounts the root filesystem:

[    6.184751] EXT4-fs: delayed allocation enabled
[    6.191487] EXT4-fs: mballoc enabled
[    6.197710] EXT4-fs: mounted filesystem hda3 without journal
[    6.203948] VFS: Mounted root (ext4 filesystem) readonly on device 3:3.

% mount | grep root
rootfs on / type rootfs (rw)
/dev/root on / type ext4 (ro,noatime,errors=remount-ro,barrier=1,data=writeback)

But when remounting the filesystem read/write and changing a file, the
changes are written to the filesystem, but it's remounted readonly
immediatly. I've set the mount option remount-ro.

[  203.082300] EXT4 FS on hda3, no journal
[  205.746713] EXT4-fs error (device hda3): ext4_free_data: circular indirect block detected, inode=165056, block=184476

% cat /proc/cpuinfo
processor	: 0
cpu		: 7455, altivec supported
clock		: 606.000000MHz
revision	: 3.3 (pvr 8001 0303)
bogomips	: 36.73
timebase	: 18432000
platform	: PowerMac
model		: PowerBook6,3
machine		: PowerBook6,3
motherboard	: PowerBook6,3 MacRISC3 Power Macintosh
detected as	: 287 (iBook G4)
pmac flags	: 0000001b
L2 cache	: 256K unified
pmac-generation	: NewWorld
Memory		: 640 MB

% uname -a
Linux ibook 2.6.29-rc2 #1 Sat Jan 17 18:04:20 CET 2009 ppc GNU/Linux

% tune2fs -l /dev/root
tune2fs 1.41.3 (12-Oct-2008)
Filesystem volume name:   Linux Root
Last mounted on:          <not available>
Filesystem UUID:          2a16f78b-dde3-4224-bb23-6303c0d69c92
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         unsigned_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              327680
Block count:              1310520
Reserved block count:     65526
Free blocks:              294862
Free inodes:              152729
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      319
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Filesystem created:       Tue Aug 12 19:22:53 2008
Last mount time:          Sun Jan 18 01:59:11 2009
Last write time:          Sun Jan 18 01:59:27 2009
Mount count:              2
Maximum mount count:      32
Last checked:             Sat Jan 17 19:33:26 2009
Check interval:           15552000 (6 months)
Next check after:         Thu Jul 16 20:33:26 2009
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Default directory hash:   tea
Directory Hash Seed:      ba7cdd48-9bce-4d4c-afdc-cff8b4008f11

Bye, Jörg.
-- 
Objektivität ist die Wahnvorstellung, Beobachtungen könnten ohne
Beobachter gemacht werden – Heinz v. Foerster

[-- Attachment #2: Digital signature http://en.wikipedia.org/wiki/OpenPGP --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ext4 fails on ext2 filesystems
  2009-01-18  1:35 ext4 fails on ext2 filesystems Jörg Sommer
@ 2009-01-18  2:38 ` Theodore Tso
  2009-01-18 10:04   ` Jörg Sommer
  2009-01-19 23:30 ` Andreas Dilger
  1 sibling, 1 reply; 8+ messages in thread
From: Theodore Tso @ 2009-01-18  2:38 UTC (permalink / raw)
  To: Jörg Sommer; +Cc: linux-ext4

On Sun, Jan 18, 2009 at 02:35:16AM +0100, Jörg Sommer wrote:
> 
> But when remounting the filesystem read/write and changing a file, the
> changes are written to the filesystem, but it's remounted readonly
> immediatly. I've set the mount option remount-ro.
> 
> [  203.082300] EXT4 FS on hda3, no journal
> [  205.746713] EXT4-fs error (device hda3): ext4_free_data: circular indirect block detected, inode=165056, block=184476
> 

Can you do me a favor?  Can you run debugfs /dev/hda3, and then run
the debugfs command: "stat <165056>"?  

Any thanks!!

					- 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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ext4 fails on ext2 filesystems
  2009-01-18  2:38 ` Theodore Tso
@ 2009-01-18 10:04   ` Jörg Sommer
  2009-01-20 14:51     ` Theodore Tso
  0 siblings, 1 reply; 8+ messages in thread
From: Jörg Sommer @ 2009-01-18 10:04 UTC (permalink / raw)
  To: Theodore Tso; +Cc: linux-ext4

[-- Attachment #1: Type: text/plain, Size: 1842 bytes --]

Hi Theodore,

Theodore Tso schrieb am Sat 17. Jan, 21:38 (-0500):
> On Sun, Jan 18, 2009 at 02:35:16AM +0100, Jörg Sommer wrote:
> > 
> > But when remounting the filesystem read/write and changing a file, the
> > changes are written to the filesystem, but it's remounted readonly
> > immediatly. I've set the mount option remount-ro.
> > 
> > [  203.082300] EXT4 FS on hda3, no journal
> > [  205.746713] EXT4-fs error (device hda3): ext4_free_data: circular indirect block detected, inode=165056, block=184476
> > 
> 
> Can you do me a favor?  Can you run debugfs /dev/hda3, and then run
> the debugfs command: "stat <165056>"?  

I've reproduced the error, because I've ran a fsck in the meantime:

% dmesg |tail G -F EXT
[24648.457402] EXT4 FS on hda3, no journal
[25253.227881] EXT4-fs error (device hda3): ext4_free_data: circular indirect block detected, inode=165056, block=184476

# debugfs /dev/hda3 <<<$'stat <165056>\ntestb 184476\nquit'
debugfs 1.41.3 (12-Oct-2008)
debugfs:  stat <165056>
Inode: 165056   Type: regular    Mode:  0644   Flags: 0x0
Generation: 2419652156    Version: 0x00000000:00000001
User:     0   Group:     0   Size: 0
File ACL: 0    Directory ACL: 0
Links: 0   Blockcount: 0
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x4972fd07:7463285e -- Sun Jan 18 10:57:27 2009
 atime: 0x4972fd06:acc79ebb -- Sun Jan 18 10:57:26 2009
 mtime: 0x4972fd07:7463285e -- Sun Jan 18 10:57:27 2009
crtime: 0x06fd7249:acc79ebb -- Wed Sep 19 08:52:41 1973
dtime: 0x4972fd07 -- Sun Jan 18 10:57:27 2009
Size of extra inode fields: 28
BLOCKS:

debugfs:  testb 184476
Block 184476 not in use
debugfs:  quit

Bye, Jörg.
-- 
Treffen sich zwei Funktionen.
Sagt die eine: „Verschwinde oder ich differenzier' dich!“
Erwidert die andere: „Ätsch, ich bin exponentiell!“

[-- Attachment #2: Digital signature http://en.wikipedia.org/wiki/OpenPGP --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ext4 fails on ext2 filesystems
  2009-01-18  1:35 ext4 fails on ext2 filesystems Jörg Sommer
  2009-01-18  2:38 ` Theodore Tso
@ 2009-01-19 23:30 ` Andreas Dilger
  2009-01-20 13:56   ` Jörg Sommer
  1 sibling, 1 reply; 8+ messages in thread
From: Andreas Dilger @ 2009-01-19 23:30 UTC (permalink / raw)
  To: J�rg Sommer; +Cc: linux-ext4

On Jan 18, 2009  02:35 +0100, J�rg Sommer wrote:
> I've an ext2 filesystem as root filesystem, because it's mounted readonly
> for the most part. I've built in the support for ext[234] in the kernel.
> Ext4 takes precedence over ext2 and it mounts the root filesystem:

Hmm, probably an unintended consequence of the newly-added patch to
allow ext4 to mount ext2 filesystems.

> But when remounting the filesystem read/write and changing a file, the
> changes are written to the filesystem, but it's remounted readonly
> immediatly. I've set the mount option remount-ro.
> 
> [  203.082300] EXT4 FS on hda3, no journal
> [  205.746713] EXT4-fs error (device hda3): ext4_free_data: circular indirect block detected, inode=165056, block=184476

> motherboard	: PowerBook6,3 MacRISC3 Power Macintosh

Hmm, looks like it might be a bug in the endian conversion?


Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.

--
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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ext4 fails on ext2 filesystems
  2009-01-19 23:30 ` Andreas Dilger
@ 2009-01-20 13:56   ` Jörg Sommer
  0 siblings, 0 replies; 8+ messages in thread
From: Jörg Sommer @ 2009-01-20 13:56 UTC (permalink / raw)
  To: Andreas Dilger; +Cc: linux-ext4

[-- Attachment #1: Type: text/plain, Size: 1237 bytes --]

Hello Andreas,

Andreas Dilger schrieb am Tue 20. Jan, 07:30 (+0800):
> On Jan 18, 2009  02:35 +0100, J�rg Sommer wrote:
> > I've an ext2 filesystem as root filesystem, because it's mounted readonly
> > for the most part. I've built in the support for ext[234] in the kernel.
> > Ext4 takes precedence over ext2 and it mounts the root filesystem:
> 
> Hmm, probably an unintended consequence of the newly-added patch to
> allow ext4 to mount ext2 filesystems.
> 
> > But when remounting the filesystem read/write and changing a file, the
> > changes are written to the filesystem, but it's remounted readonly
> > immediatly. I've set the mount option remount-ro.
> > 
> > [  203.082300] EXT4 FS on hda3, no journal
> > [  205.746713] EXT4-fs error (device hda3): ext4_free_data: circular indirect block detected, inode=165056, block=184476
> 
> > motherboard	: PowerBook6,3 MacRISC3 Power Macintosh
> 
> Hmm, looks like it might be a bug in the endian conversion?

Or an unsigned vs. signed char bug? Can I somehow help you hunting the
bug? How can I mount my rootfs with ext4 on 2.6.28. Maybe this bug isn't
in this version.

Bye, Jörg.
-- 
$ cat /dev/random
#!/usr/bin/perl -WT
print "hello world\n";

[-- Attachment #2: Digital signature http://en.wikipedia.org/wiki/OpenPGP --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ext4 fails on ext2 filesystems
  2009-01-18 10:04   ` Jörg Sommer
@ 2009-01-20 14:51     ` Theodore Tso
  2009-01-21 18:45       ` Jörg Sommer
  0 siblings, 1 reply; 8+ messages in thread
From: Theodore Tso @ 2009-01-20 14:51 UTC (permalink / raw)
  To: Jörg Sommer; +Cc: linux-ext4

On Sun, Jan 18, 2009 at 11:04:59AM +0100, Jörg Sommer wrote:
> > > [  203.082300] EXT4 FS on hda3, no journal
> > > [  205.746713] EXT4-fs error (device hda3): ext4_free_data: circular indirect block detected, inode=165056, block=184476
> > > 

Hi, this patch should fix your problem.

						- Ted

commit bf3baec2b4529dcf47ee422a48b8c0e83df7f0a0
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Tue Jan 20 09:50:19 2009 -0500

    ext4: Fix ext4_free_blocks() w/o a journal when files have indirect blocks
    
    When trying to unlink a file with indirect blocks on a filesystem
    without a journal, the "circular indirect block" sanity test was
    getting falsely triggered.
    
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 49484ba..b4386da 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -3622,7 +3622,7 @@ static void ext4_free_data(handle_t *handle, struct inode *inode,
 		 * block pointed to itself, it would have been detached when
 		 * the block was cleared. Check for this instead of OOPSing.
 		 */
-		if (bh2jh(this_bh))
+		if ((EXT4_JOURNAL(inode) == NULL) || bh2jh(this_bh))
 			ext4_handle_dirty_metadata(handle, inode, this_bh);
 		else
 			ext4_error(inode->i_sb, __func__,
--
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

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: ext4 fails on ext2 filesystems
  2009-01-20 14:51     ` Theodore Tso
@ 2009-01-21 18:45       ` Jörg Sommer
  2009-01-21 19:58         ` Theodore Tso
  0 siblings, 1 reply; 8+ messages in thread
From: Jörg Sommer @ 2009-01-21 18:45 UTC (permalink / raw)
  To: Theodore Tso; +Cc: linux-ext4

[-- Attachment #1: Type: text/plain, Size: 1584 bytes --]

Hi Theodore,

Theodore Tso schrieb am Tue 20. Jan, 09:51 (-0500):
> On Sun, Jan 18, 2009 at 11:04:59AM +0100, Jörg Sommer wrote:
> > > > [  203.082300] EXT4 FS on hda3, no journal
> > > > [  205.746713] EXT4-fs error (device hda3): ext4_free_data: circular indirect block detected, inode=165056, block=184476
> > > > 
> 
> Hi, this patch should fix your problem.

Yes, this patch fixes the problem. Thanks.

> commit bf3baec2b4529dcf47ee422a48b8c0e83df7f0a0
> Author: Theodore Ts'o <tytso@mit.edu>
> Date:   Tue Jan 20 09:50:19 2009 -0500
> 
>     ext4: Fix ext4_free_blocks() w/o a journal when files have indirect blocks
>     
>     When trying to unlink a file with indirect blocks on a filesystem
>     without a journal, the "circular indirect block" sanity test was
>     getting falsely triggered.
>     
>     Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

Tested-by: Jörg Sommer <joerg@alea.gnuu.de>

> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index 49484ba..b4386da 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -3622,7 +3622,7 @@ static void ext4_free_data(handle_t *handle, struct inode *inode,
>  		 * block pointed to itself, it would have been detached when
>  		 * the block was cleared. Check for this instead of OOPSing.
>  		 */
> -		if (bh2jh(this_bh))
> +		if ((EXT4_JOURNAL(inode) == NULL) || bh2jh(this_bh))
>  			ext4_handle_dirty_metadata(handle, inode, this_bh);
>  		else
>  			ext4_error(inode->i_sb, __func__,
> 

Bye, Jörg.
-- 
Freiheit heißt, die Wahl zu haben, wessen Sklave man ist.

[-- Attachment #2: Digital signature http://en.wikipedia.org/wiki/OpenPGP --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ext4 fails on ext2 filesystems
  2009-01-21 18:45       ` Jörg Sommer
@ 2009-01-21 19:58         ` Theodore Tso
  0 siblings, 0 replies; 8+ messages in thread
From: Theodore Tso @ 2009-01-21 19:58 UTC (permalink / raw)
  To: Jörg Sommer; +Cc: linux-ext4

On Wed, Jan 21, 2009 at 07:45:17PM +0100, Jörg Sommer wrote:
> 
> Yes, this patch fixes the problem. Thanks.

Great, thanks for the confirmation.

						- 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

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-01-21 22:07 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-18  1:35 ext4 fails on ext2 filesystems Jörg Sommer
2009-01-18  2:38 ` Theodore Tso
2009-01-18 10:04   ` Jörg Sommer
2009-01-20 14:51     ` Theodore Tso
2009-01-21 18:45       ` Jörg Sommer
2009-01-21 19:58         ` Theodore Tso
2009-01-19 23:30 ` Andreas Dilger
2009-01-20 13:56   ` Jörg Sommer

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).