Date: Wed, 6 May 2015 15:25:20 +0000 (UTC) From: John Baldwin <jhb@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r282550 - head/lib/libc/gen Message-ID: <201505061525.t46FPKlE060261@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jhb Date: Wed May 6 15:25:20 2015 New Revision: 282550 URL: https://svnweb.freebsd.org/changeset/base/282550 Log: A few style fixes and expand the comment a bit on what _fixtelldir() is doing. Modified: head/lib/libc/gen/telldir.c Modified: head/lib/libc/gen/telldir.c ============================================================================== --- head/lib/libc/gen/telldir.c Wed May 6 15:20:50 2015 (r282549) +++ head/lib/libc/gen/telldir.c Wed May 6 15:25:20 2015 (r282550) @@ -101,11 +101,12 @@ _seekdir(dirp, loc) return; if (lp->loc_loc == dirp->dd_loc && lp->loc_seek == dirp->dd_seek) return; - /* If it's within the same chunk of data, don't bother reloading */ + + /* If it's within the same chunk of data, don't bother reloading. */ if (lp->loc_seek == dirp->dd_seek) { /* * If we go back to 0 don't make the next readdir - * trigger a call to getdirentries() + * trigger a call to getdirentries(). */ if (lp->loc_loc == 0) dirp->dd_flags |= __DTF_SKIPREAD; @@ -124,10 +125,13 @@ _seekdir(dirp, loc) } /* - * when we do a read and cross a boundary, any telldir we - * just did will have wrong information in it. - * We need to move it from "beyond the end of the previous chunk" - * to "the beginning of the new chunk" + * A call to telldir after readdir returns the last entry in a block + * returns a location that is after the end of the last entry in that + * block. However, that location doesn't refer to a valid directory + * entry. Instead, these locations should refer to the first entry in + * the next block. That location is not known until the next block is + * read, so readdir calls this function after fetching a new block to + * fix any such telldir locations. */ void _fixtelldir(DIR *dirp, long oldseek, long oldloc)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505061525.t46FPKlE060261>