svn commit: r225351 - projects/ino64/sys/ufs/ufs
mdf at FreeBSD.org
mdf at FreeBSD.org
Fri Sep 2 18:54:22 UTC 2011
Is anyone using UFS_EXTATTR_AUTOSTART? I think the code is now
correct for the endpoint of the returned dirent's, but it would be
nice to have a review and/or someone test the code.
Thanks,
matthew
On Fri, Sep 2, 2011 at 11:52 AM, Matthew D Fleming <mdf at freebsd.org> wrote:
> 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,
>
More information about the svn-src-projects
mailing list