lkml.org 
[lkml]   [2002]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH] [3/4]: Ext2/3 updates: HTREE backwards compatibility patch
From
Date
HTREE backwards compatibility patch.

I thought (and assumed) this patch had been applied to both the ext2
and ext3 filesystems in the 2.4 kernel. It turns out it had only made
it into the ext3 filesystem code. This means that if an
HTREE-enabled filesystem is mounted using ext2, it will corrupt
the filesystem as far as e2fsck and an ext3 htree-enabled kernel is
concerned. (The corruption won't cause any data loss, but it will
cause e2fsck and an ext3-htree kernel to omit a lot of warning
messages.)

dir.c | 3 +++
ialloc.c | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)

diff -Nru a/fs/ext2/dir.c b/fs/ext2/dir.c
--- a/fs/ext2/dir.c Tue Nov 12 01:14:00 2002
+++ b/fs/ext2/dir.c Tue Nov 12 01:14:00 2002
@@ -420,6 +420,7 @@
err = ext2_commit_chunk(page, from, to);
ext2_put_page(page);
dir->i_mtime = dir->i_ctime = CURRENT_TIME;
+ EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL;
mark_inode_dirty(dir);
}

@@ -509,6 +510,7 @@
ext2_set_de_type (de, inode);
err = ext2_commit_chunk(page, from, to);
dir->i_mtime = dir->i_ctime = CURRENT_TIME;
+ EXT2_I(dir)->i_flags &= ~EXT2_BTREE_FL;
mark_inode_dirty(dir);
/* OFFSET_CACHE */
out_put:
@@ -556,6 +558,7 @@
dir->inode = 0;
err = ext2_commit_chunk(page, from, to);
inode->i_ctime = inode->i_mtime = CURRENT_TIME;
+ EXT2_I(inode)->i_flags &= ~EXT2_BTREE_FL;
mark_inode_dirty(inode);
out:
ext2_put_page(page);
diff -Nru a/fs/ext2/ialloc.c b/fs/ext2/ialloc.c
--- a/fs/ext2/ialloc.c Tue Nov 12 01:14:00 2002
+++ b/fs/ext2/ialloc.c Tue Nov 12 01:14:00 2002
@@ -514,7 +514,7 @@
inode->i_blocks = 0;
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
memset(ei->i_data, 0, sizeof(ei->i_data));
- ei->i_flags = EXT2_I(dir)->i_flags;
+ ei->i_flags = EXT2_I(dir)->i_flags & ~EXT2_BTREE_FL;
if (S_ISLNK(mode))
ei->i_flags &= ~(EXT2_IMMUTABLE_FL|EXT2_APPEND_FL);
/* dirsync is only applied to directories */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:30    [W:0.025 / U:0.800 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site