PERFORCE change 122480 for review
Roman Divacky
rdivacky at freebsd.org
Mon Jul 2 13:10:45 UTC 2007
On Fri, Jun 29, 2007 at 08:52:06PM -0400, John Baldwin wrote:
> On Thursday 28 June 2007 08:14:43 am Roman Divacky wrote:
> > http://perforce.freebsd.org/chv.cgi?CH=122480
> >
> > Change 122480 by rdivacky at rdivacky_witten on 2007/06/28 12:14:14
> >
> > vrele AFTER checking the vp for being on non-MPSAFE FS + some indentation
> > problems that caused bad scoping
> >
> > Noticed by: rwatson (again ;) )
>
> Umm, no. You need Giant for the vrele(). The proper fix is to use the
> VFS_*_GIANT() macros and use int variables to know if you need to unlock
> Giant or not.
I dont see an easy and elegant way how to use the VFS_*_GIANT macros. I lock
the giant in kern_get_at() function and unlock in function that calls this one. ie.:
foo()
{
kern_get_at(...);
...
if (VFS_NEEDSGIANT)
mtx_unlock(&Giant);
}
I need to either propagate the vfslocked value from kern_get_at or lock the Giant in the foo()
function. honestly I dont like either much
what do you suggest?
More information about the p4-projects
mailing list