Messages in this thread Patch in this message | | | Date | Wed, 6 Feb 2002 18:51:41 +0300 | From | Oleg Drokin on behalf of Hans Reiser <> | Subject | [PATCH] reiserfs fix for inodes with wrong item versions (2.5) |
| |
Hello!
This is hopefully last bugfix for a bug introduced by struct inode splitting. Because of setting i_flags to some value and then cleaning the i_flags contents later, on-disk items received wrong item version ob v3.6 filesystems
Please apply.
Bye, Oleg
--- linux-2.5.4-pre1/fs/reiserfs/inode.c.orig Wed Feb 6 11:18:35 2002 +++ linux-2.5.4-pre1/fs/reiserfs/inode.c Wed Feb 6 11:12:08 2002 @@ -890,6 +890,13 @@ inode->i_blksize = PAGE_SIZE; INIT_LIST_HEAD(&(REISERFS_I(inode)->i_prealloc_list )); + REISERFS_I(inode)->i_flags = 0; + REISERFS_I(inode)->i_prealloc_block = 0; + REISERFS_I(inode)->i_prealloc_count = 0; + REISERFS_I(inode)->i_trans_id = 0; + REISERFS_I(inode)->i_trans_index = 0; + /* nopack = 0, by default */ + REISERFS_I(inode)->i_flags &= ~i_nopack_mask; if (stat_data_v1 (ih)) { struct stat_data_v1 * sd = (struct stat_data_v1 *)B_I_PITEM (bh, ih); @@ -950,13 +957,6 @@ set_inode_item_key_version (inode, KEY_FORMAT_3_6); REISERFS_I(inode)->i_first_direct_byte = 0; } - REISERFS_I(inode)->i_flags = 0; - REISERFS_I(inode)->i_prealloc_block = 0; - REISERFS_I(inode)->i_prealloc_count = 0; - REISERFS_I(inode)->i_trans_id = 0; - REISERFS_I(inode)->i_trans_index = 0; - /* nopack = 0, by default */ - REISERFS_I(inode)->i_flags &= ~i_nopack_mask; pathrelse (path); if (S_ISREG (inode->i_mode)) { - 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/
| |