[2769] in Release_Engineering
fix for VAX irele panic
daemon@ATHENA.MIT.EDU (Mark Rosenstein)
Wed Apr 15 00:19:06 1992
Date: Wed, 15 Apr 92 00:18:54 -0400
From: Mark Rosenstein <mar@MIT.EDU>
To: rel-eng@MIT.EDU
This patch needs to go into the release to avoid irele panics on busy
NFS servers (it's running on our central servers now).
-Mark
*** /source/bsd-4.3/common/sys/ufs/ufs_vnodeops.c Wed Apr 25 12:15:26 1990
--- ufs_vnodeops.c Fri Feb 28 17:26:19 1992
***************
*** 13,18 ****
--- 13,19 ----
#include "conf.h"
#include "kernel.h"
#include "cmap.h"
+ #include "syslog.h"
#include "../ufs/fs.h"
#include "../ufs/inode.h"
#include "../ufs/mount.h"
***************
*** 956,961 ****
--- 957,969 ----
}
out:
+ /* If another process has this inode locked, wait for it
+ to be free. */
+ while (sip->i_flag & ILOCKED) {
+ log(LOG_ERR, "ufs_rename sleeping on locked inode %x\n", sip);
+ sip->i_flag |= IWANT;
+ sleep((caddr_t)sip, PINOD);
+ }
irele(sip);
return (error);
}