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