[9028] in Athena Bugs

home help back first fref pref prev next nref lref last post

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);
  }

home help back first fref pref prev next nref lref last post