After I upgraded from FreeBSD 8 to 10 RC3 (dual boot Linux/FreeBSD), on Linux, I noticed this error in dmesg (which never appeared on FreeBSD 8): syslog.1:Dec 29 14:49:56 pc kernel: [ 4969.426736] EXT3-fs (sda5): warning: dx_probe: Unrecognised inode hash code 44 syslog.1:Dec 29 14:49:56 pc kernel: [ 4969.426748] EXT3-fs (sda5): warning: dx_probe: Corrupt dir inode 4194305, running e2fsck is recommended. However, I compared the directory against a backup and no data was lost, and Linux fsck didn't find any real problems (this bug seems benign). bobsullivan1960 /-at-/ gmail /-/ com Fix: N/A How-To-Repeat: Isn't reproducible, unfortuantely.
Responsible Changed From-To: freebsd-bugs->freebsd-fs Over to maintainer(s).
Responsible Changed From-To: freebsd-fs->pfg I think it is some leftover from the (disabled) htree support. It shouldn't be of consequence so I will get a fix after 10-Release. Grab.
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; _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Author: pfg Date: Tue Jan 14 15:20:33 2014 New Revision: 260629 URL: http://svnweb.freebsd.org/changeset/base/260629 Log: MFC r260545: 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 Modified: stable/10/sys/fs/ext2fs/ext2_inode_cnv.c Modified: stable/10/sys/fs/ext2fs/ext2_inode_cnv.c ============================================================================== --- stable/10/sys/fs/ext2fs/ext2_inode_cnv.c Tue Jan 14 14:05:29 2014 (r260628) +++ stable/10/sys/fs/ext2fs/ext2_inode_cnv.c Tue Jan 14 15:20:33 2014 (r260629) @@ -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; _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed Fix has been merged to -stable. Unfortunately the fix was little too late for the next Release. Thank you for the report!