From 9b9ef909455a6ec6f0ab120327a6938997089856 Mon Sep 17 00:00:00 2001 From: Robert Elz Date: Tue, 13 Jul 1982 01:16:32 -0800 Subject: [PATCH 1/1] Allow acct file swap w/o losing any info; use NODEV for ac_tty if proc had no controlling tty. SCCS-vsn: sys/kern/kern_resource.c 4.9 --- usr/src/sys/kern/kern_resource.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/usr/src/sys/kern/kern_resource.c b/usr/src/sys/kern/kern_resource.c index 44d4c58fa7..1358ee8177 100644 --- a/usr/src/sys/kern/kern_resource.c +++ b/usr/src/sys/kern/kern_resource.c @@ -30,10 +30,6 @@ sysacct() } return; } - if (acctp) { - u.u_error = EBUSY; - return; - } ip = namei(uchar, 0, 1); if(ip == NULL) return; @@ -42,6 +38,9 @@ sysacct() iput(ip); return; } + if (acctp && (acctp->i_number != ip->i_number || + acctp->i_dev != ip->i_dev)) + irele(acctp); acctp = ip; iunlock(ip); } @@ -73,7 +72,10 @@ acct() if (i = u.u_vm.vm_utime + u.u_vm.vm_stime) ap->ac_mem = (u.u_vm.vm_ixrss + u.u_vm.vm_idsrss) / i; ap->ac_io = compress((long)(u.u_vm.vm_inblk + u.u_vm.vm_oublk)); - ap->ac_tty = u.u_ttyd; + if (u.u_ttyp) + ap->ac_tty = u.u_ttyd; + else + ap->ac_tty = NODEV; ap->ac_flag = u.u_acflag; siz = ip->i_size; u.u_offset = siz; -- 2.20.1