Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Sep 2011 18:52:17 +0000 (UTC)
From:      Matthew D Fleming <mdf@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r225351 - projects/ino64/sys/ufs/ufs
Message-ID:  <201109021852.p82IqH1M011851@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mdf
Date: Fri Sep  2 18:52:17 2011
New Revision: 225351
URL: http://svn.freebsd.org/changeset/base/225351

Log:
  ufs: Stop mangling dirent in ufs_extattr_iterate_directory.
  It's meaningless after switching to new dirent format.
  
  GSoC r223159.
  Code by: Gleb Kurtsou.

Modified:
  projects/ino64/sys/ufs/ufs/ufs_extattr.c

Modified: projects/ino64/sys/ufs/ufs/ufs_extattr.c
==============================================================================
--- projects/ino64/sys/ufs/ufs/ufs_extattr.c	Fri Sep  2 18:50:44 2011	(r225350)
+++ projects/ino64/sys/ufs/ufs/ufs_extattr.c	Fri Sep  2 18:52:17 2011	(r225351)
@@ -397,20 +397,8 @@ ufs_extattr_iterate_directory(struct ufs
 			return (error);
 		}
 
-		/*
-		 * XXXRW: While in UFS, we always get DIRBLKSIZ returns from
-		 * the directory code on success, on other file systems this
-		 * may not be the case.  For portability, we should check the
-		 * read length on return from ufs_readdir().
-		 */
-		edp = (struct dirent *)&dirbuf[DIRBLKSIZ];
+		edp = (struct dirent *)&dirbuf[DIRBLKSIZ - auio.uio_resid];
 		for (dp = (struct dirent *)dirbuf; dp < edp; ) {
-#if (BYTE_ORDER == LITTLE_ENDIAN)
-			dp->d_type = dp->d_namlen;
-			dp->d_namlen = 0;
-#else
-			dp->d_type = 0;
-#endif
 			if (dp->d_reclen == 0)
 				break;
 			error = ufs_extattr_lookup(dvp, UE_GETDIR_LOCKPARENT,



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