Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Jan 2014 15:19:04 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r260545 - head/sys/fs/ext2fs
Message-ID:  <201401111519.s0BFJ4GR010749@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Sat Jan 11 15:19:04 2014
New Revision: 260545
URL: http://svnweb.freebsd.org/changeset/base/260545

Log:
  ext2fs: fix inode flag conversion.
  
  After r252890 we are naively attempting to pass through the
  inode flags.  This is technically incorrect as the ext2
  inode flags don't match the UFS/system values used in
  FreeBSD and a clean conversion is needed.
  
  Some filtering was left in place so the change didn't cause
  significant changes in FreeBSD but some of the garbage passed
  is likely to be the cause for warning messages in linux.
  
  Fix the issue by resetting the flags before conversion as was
  done previously. This also means we will not pass the EXT4_*
  inode flags into FreeBSD's inode.
  
  PR:		kern/185448
  MFC after:	3 days

Modified:
  head/sys/fs/ext2fs/ext2_inode_cnv.c

Modified: head/sys/fs/ext2fs/ext2_inode_cnv.c
==============================================================================
--- head/sys/fs/ext2fs/ext2_inode_cnv.c	Sat Jan 11 15:01:30 2014	(r260544)
+++ head/sys/fs/ext2fs/ext2_inode_cnv.c	Sat Jan 11 15:19:04 2014	(r260545)
@@ -104,7 +104,7 @@ ext2_ei2i(struct ext2fs_dinode *ei, stru
 		ip->i_birthtime = ei->e2di_crtime;
 		ip->i_birthnsec = XTIME_TO_NSEC(ei->e2di_crtime_extra);
 	}
-	ip->i_flags = ei->e2di_flags;
+	ip->i_flags = 0;
 	ip->i_flags |= (ei->e2di_flags & EXT2_APPEND) ? SF_APPEND : 0;
 	ip->i_flags |= (ei->e2di_flags & EXT2_IMMUTABLE) ? SF_IMMUTABLE : 0;
 	ip->i_flags |= (ei->e2di_flags & EXT2_NODUMP) ? UF_NODUMP : 0;
@@ -152,7 +152,7 @@ ext2_i2ei(struct inode *ip, struct ext2f
 		ei->e2di_crtime = ip->i_birthtime;
 		ei->e2di_crtime_extra = NSEC_TO_XTIME(ip->i_birthnsec);
 	}
-	ei->e2di_flags = ip->i_flags;
+	ei->e2di_flags = 0;
 	ei->e2di_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND: 0;
 	ei->e2di_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE: 0;
 	ei->e2di_flags |= (ip->i_flags & UF_NODUMP) ? EXT2_NODUMP: 0;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401111519.s0BFJ4GR010749>