Re: kernel-2.6.16-rc2-git8 - reiserfs - write problem !!!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux