Giant around fdfree() in exit1() ?
Giorgos Keramidas
keramida at freebsd.org
Wed Aug 17 12:39:16 GMT 2005
On 2005-08-17 11:13, Poul-Henning Kamp <phk at haven.freebsd.dk> wrote:
>
> I'm seeing Giant held in a MNTK_MPSAFE devfs->close without this patch,
> any insight/comments ?
fdfree() releases POSIX locks the descriptor has. Is it ok to call
VOP_ADVLOCK(..., F_UNLCK, ...) and free() without holding Giant?
> Index: kern/kern_exit.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/kern/kern_exit.c,v
> retrieving revision 1.264
> diff -u -r1.264 kern_exit.c
> --- kern/kern_exit.c 18 Jul 2005 20:08:14 -0000 1.264
> +++ kern/kern_exit.c 17 Aug 2005 08:42:38 -0000
> @@ -229,13 +229,13 @@
> */
> mtx_lock(&Giant); /* XXX: not sure if needed */
> funsetownlst(&p->p_sigiolst);
> + mtx_unlock(&Giant);
>
> /*
> * Close open files and release open-file table.
> * This may block!
> */
> fdfree(td);
> - mtx_unlock(&Giant);
More information about the freebsd-current
mailing list