Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Oct 2013 19:46:02 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r257267 - stable/9/sys/fs/ext2fs
Message-ID:  <201310281946.r9SJk2ss008503@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Mon Oct 28 19:46:01 2013
New Revision: 257267
URL: http://svnweb.freebsd.org/changeset/base/257267

Log:
  MFC	r255338:
  
  ext2fs: temporarily disable htree directory index.
  
  In addition to our implementation not having workarounds for hash
  collisions, it appears we also have a compatibility problem.
  
  For now disable the htree code until we are able to re-examine
  both issues.
  
  PR:	kern/183230

Modified:
  stable/9/sys/fs/ext2fs/ext2_htree.c
  stable/9/sys/fs/ext2fs/ext2_lookup.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/fs/   (props changed)

Modified: stable/9/sys/fs/ext2fs/ext2_htree.c
==============================================================================
--- stable/9/sys/fs/ext2fs/ext2_htree.c	Mon Oct 28 19:30:09 2013	(r257266)
+++ stable/9/sys/fs/ext2fs/ext2_htree.c	Mon Oct 28 19:46:01 2013	(r257267)
@@ -89,10 +89,12 @@ static int	ext2_htree_writebuf(struct ex
 int
 ext2_htree_has_idx(struct inode *ip)
 {
+#ifdef EXT2FS_HTREE
 	if (EXT2_HAS_COMPAT_FEATURE(ip->i_e2fs, EXT2F_COMPAT_DIRHASHINDEX) &&
 	    ip->i_flags & EXT4_INDEX)
 		return (1);
 	else
+#endif
 		return (0);
 }
 

Modified: stable/9/sys/fs/ext2fs/ext2_lookup.c
==============================================================================
--- stable/9/sys/fs/ext2fs/ext2_lookup.c	Mon Oct 28 19:30:09 2013	(r257266)
+++ stable/9/sys/fs/ext2fs/ext2_lookup.c	Mon Oct 28 19:46:01 2013	(r257267)
@@ -884,6 +884,7 @@ ext2_direnter(struct inode *ip, struct v
 	bcopy(cnp->cn_nameptr, newdir.e2d_name, (unsigned)cnp->cn_namelen + 1);
 	newentrysize = EXT2_DIR_REC_LEN(newdir.e2d_namlen);
 
+#ifdef EXT2FS_HTREE
 	if (ext2_htree_has_idx(dp)) {
 		error = ext2_htree_add_entry(dvp, &newdir, cnp);
 		if (error) {
@@ -904,6 +905,7 @@ ext2_direnter(struct inode *ip, struct v
 			return ext2_htree_create_index(dvp, cnp, &newdir);
 		}
 	}
+#endif	/* EXT2FS_HTREE */
 
 	if (dp->i_count == 0) {
 		/*



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