[9028] in Athena Bugs
workaround for VAX panic: irele
daemon@ATHENA.MIT.EDU (Mark Rosenstein)
Fri Feb 28 19:03:53 1992
Date: Fri, 28 Feb 92 19:03:41 -0500
From: Mark Rosenstein <mar@MIT.EDU>
To: bugs@MIT.EDU
The NFS servers have been panicing regularly since 7.3 went out. This
works around the problem, although it doesn't directly fix the inode
locking.
-Mark
*** ../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);
}