Re: vn_fullpath: 0xc85e24a0 is not locked but should be

From: Jeff Roberson <jroberson_at_chesapeake.net>
Date: Fri, 12 Dec 2003 18:44:05 -0500 (EST)
On Fri, 12 Dec 2003, Don Lewis wrote:

> On 12 Dec, Jun Kuriyama wrote:
> > At Thu, 11 Dec 2003 23:14:50 -0500 (EST),
> > Robert Watson wrote:
> >> Ah, you're still runing with the VFS lock debugging :-).  Indeed, it looks
> >> like a vn_lock() and unlock of p->p_textvp is missing in
> >> procfs_doprocfile(), even though that likely would violate the VFS lock
> >> order.  The attached (untested) patch might well fix it, but might not be
> >> right -- I'm not sure that curthread holds a valid reference to
> >> p->p_textvp that can't evaporate during these operations.  I'm not sure
> >> the proc reference stuff protects us properly here, but John would know
> >> (CC'd).
> >>
> >> Index: procfs.c
> >> ===================================================================
> >> RCS file: /home/ncvs/src/sys/fs/procfs/procfs.c,v
> >> retrieving revision 1.9
> >> diff -u -r1.9 procfs.c
> >> --- procfs.c	17 Apr 2003 22:12:12 -0000	1.9
> >> +++ procfs.c	12 Dec 2003 04:13:10 -0000
> >> _at__at_ -70,7 +70,9 _at__at_
> >>  	char *fullpath = "unknown";
> >>  	char *freepath = NULL;
> >>
> >> +	vn_lock(p->p_textvp, LK_EXCLUSIVE | LK_RETRY, td);
> >>  	vn_fullpath(td, p->p_textvp, &fullpath, &freepath);
> >> +	VOP_UNLOCK(p->p_textvp, 0, td);
> >>  	sbuf_printf(sb, "%s", fullpath);
> >>  	if (freepath)
> >>  		free(freepath, M_TEMP);
> >
> > Okay, I'll wait without DEBUG_VFS_LOCKS until fix is committed.
>
> DEBUG_VFS_LOCKS is quite usable as long as you don't run find, tar, etc.
> that traverses procfs.

This isn't entirely relevant, but I'd like to point out how happy I am
that it works even this much.  When I started fixing up VFS we couldn't
even run init without DEBUG_VFS_LOCKS panicing.  It took me a few weeks of
hacking to get the system running anything useful with all of these
assertions.  A lot of other people have put significant effort in along
the way as well.  I'm very happy to see the progress.

Thanks folks.
Cheers,
Jeff

> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>
Received on Fri Dec 12 2003 - 14:44:11 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:33 UTC