atom feed7 messages in org.freebsd.freebsd-fsexecutable open until unmount
FromSent OnAttachments
Rick MacklemJul 15, 2008 7:49 pm 
Kostik BelousovJul 15, 2008 8:36 pm 
Rick MacklemJul 16, 2008 3:21 pm 
Kostik BelousovJul 16, 2008 3:43 pm 
Kostik BelousovJul 17, 2008 11:02 am 
Rick MacklemJul 17, 2008 2:56 pm 
Rick MacklemJul 17, 2008 3:20 pm 
Subject:executable open until unmount
From:Rick Macklem (rmac@uoguelph.ca)
Date:Jul 17, 2008 2:56:37 pm
List:org.freebsd.freebsd-fs

On Wed, 16 Jul 2008, Kostik Belousov wrote:

On Wed, Jul 16, 2008 at 11:32:28AM -0400, Rick Macklem wrote:

Patch looks good. It fixed my problem and hasn't crashed the system yet;-)

Did you tested both elf executables and #!-scripts ?

Yep. (At least I have now. I had only tested Elf when I posted:-)

Working fine without crashes sofar, rick

Thanks, rick

On Tue, 15 Jul 2008, Kostik Belousov wrote:

On Tue, Jul 15, 2008 at 02:57:23PM -0400, Rick Macklem wrote:

I'm testing my nfsv4 client and I've run into this issue under FreeBSD7.0.

When I execute a file on the nfs mounted volume, the file remains open until the vnode gets cleared out, usually when I unmount. For NFSv4, this isn't a particularily good thing, since these Opens tie up resources on the NFS server, etc.

Anyone know if there is something I'm doing incorrectly that causes this or a way to get the close to happen when the executable terminates?

Thanks in advance for any help, rick

Try this:

diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index f4335a2..c3ef0e9 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -496,6 +496,7 @@ interpret: interplabel = mac_vnode_label_alloc(); mac_vnode_copy_label(binvp->v_label, interplabel); #endif + VOP_CLOSE(binvp, FREAD, td->td_ucred, td); vput(binvp); vm_object_deallocate(imgp->object); imgp->object = NULL; @@ -845,6 +846,7 @@ exec_fail_dealloc: if (imgp->vp != NULL) { if (args->fname) NDFREE(ndp, NDF_ONLY_PNBUF); + VOP_CLOSE(imgp->vp, FREAD, td->td_ucred, td); vput(imgp->vp); }