On Sun, Feb 12, 2006 at 01:56:52AM -0600, art wrote: > FROM: > Jeffrey Mahoney <[email protected]> | Save Address > DATE: Sat, 11 Feb 2006 16:58:20 -0500 > TO: <[email protected]> > SUBJECT: Re: kernel-2.6.16-rc2-git8 - reiserfs 3.6 - write problem !!! > > art wrote: > > kernel-2.6.16-rc2-git8 - reiserfs - write problem !!! > > > > it started ~from kernel-2.6.16-rc2 > > 2.6.16-rc1-git6 works ok art - One more followup question. Was the file system you're using converted from a v3.5 file system, or has it always been v3.6? Sergey Vlasov on the reiserfs list noticed that v3.5 objects never had REISERFS_I(inode)->i_attrs set, which means that even on a converted v3.6 file system, objects created underneath a v3.5-created directory would inherit random attrs bits. I have a patch that adds an additional check to see if the file system has always been v3.6 - just by checking the version of the stat data on the root directory. If you haven't already run reiserfsck --clean attributes, can you give the patch a try? Don't mount with -oattrs, since we already know the attributes are corrupt. I just want to test and see if the file system you've got is converted from a v3.5 file system and if it fixes the problem. Thanks. -Jeff -- Jeff Mahoney SuSE Labs
diff -ruNpX dontdiff linux-2.6.15/fs/reiserfs/inode.c linux-2.6.15-reiserfs/fs/reiserfs/inode.c --- linux-2.6.15/fs/reiserfs/inode.c 2006-02-06 19:54:10.000000000 -0500 +++ linux-2.6.15-reiserfs/fs/reiserfs/inode.c 2006-02-12 12:43:00.000000000 -0500 @@ -1195,6 +1195,7 @@ static void init_inode(struct inode *ino /* nopack is initially zero for v1 objects. For v2 objects, nopack is initialised from sd_attrs */ REISERFS_I(inode)->i_flags &= ~i_nopack_mask; + REISERFS_I(inode)->i_attrs = 0; } else { // new stat data found, but object may have old items // (directories and symlinks) diff -ruNpX dontdiff linux-2.6.15/fs/reiserfs/super.c linux-2.6.15-reiserfs/fs/reiserfs/super.c --- linux-2.6.15/fs/reiserfs/super.c 2006-02-06 19:54:27.000000000 -0500 +++ linux-2.6.15-reiserfs/fs/reiserfs/super.c 2006-02-12 12:48:41.000000000 -0500 @@ -1121,7 +1121,9 @@ static void handle_attrs(struct super_bl "reiserfs: cannot support attributes until flag is set in super-block"); REISERFS_SB(s)->s_mount_opt &= ~(1 << REISERFS_ATTRS); } - } else if (le32_to_cpu(rs->s_flags) & reiserfs_attrs_cleared) { + } else if (le32_to_cpu(rs->s_flags) & reiserfs_attrs_cleared && + get_inode_item_key_version(s->s_root->d_inode) == KEY_FORMAT_3_6) { + /* Enable attrs by default on v3.6-native file systems */ REISERFS_SB(s)->s_mount_opt |= (1 << REISERFS_ATTRS); } }
Attachment:
pgp3CsINll9d5.pgp
Description: PGP signature
- References:
- Prev by Date: [RFC: 2.6 patch] CONFIG_FORCEDETH updates
- Next by Date: [RFC: 2.6 patch] let NET_CLS_ACT no longer depend on EXPERIMENTAL
- Previous by thread: Re: kernel-2.6.16-rc2-git8 - reiserfs - write problem !!!
- Next by thread: [patch] s390: fstatat64 support
- Index(es):