svn commit: r186458 - head/sys/kern
Kostik Belousov
kostikbel at gmail.com
Tue Dec 23 21:06:22 UTC 2008
On Tue, Dec 23, 2008 at 08:43:42PM +0000, Joe Marcus Clarke wrote:
> Author: marcus (doc,ports committer)
> Date: Tue Dec 23 20:43:42 2008
> New Revision: 186458
> URL: http://svn.freebsd.org/changeset/base/186458
>
> Log:
> Do not KASSERT when vp->v_dd is NULL. Only directories which have had ".."
> looked up would have v_dd set to a non-NULL value. This fixes a panic
I was very unaccurate in my formulation to the point where the statement
should be considered plain wrong. This does not invalidate the commit,
but the way to say this is
v_dd is set to NULL by ".." lookups for directories that are not cached
as the dst for their names.
> seen when running installworld on a diskless system with a separate /usr
> file system.
>
> Submitted by: cracauer
> Approved by: kib
>
> Modified:
> head/sys/kern/vfs_cache.c
>
> Modified: head/sys/kern/vfs_cache.c
> ==============================================================================
> --- head/sys/kern/vfs_cache.c Tue Dec 23 20:25:04 2008 (r186457)
> +++ head/sys/kern/vfs_cache.c Tue Dec 23 20:43:42 2008 (r186458)
> @@ -936,7 +936,7 @@ vn_fullpath1(struct thread *td, struct v
> }
> ncp = TAILQ_FIRST(&vp->v_cache_dst);
> if (ncp != NULL) {
> - MPASS(ncp->nc_dvp == vp->v_dd);
> + MPASS(vp->v_dd == NULL || ncp->nc_dvp == vp->v_dd);
> buflen -= ncp->nc_nlen - 1;
> for (i = ncp->nc_nlen - 1; i >= 0 && bp != buf; i--)
> *--bp = ncp->nc_name[i];
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-all/attachments/20081223/afbe975e/attachment.pgp
More information about the svn-src-all
mailing list