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