[2769] in Release_Engineering

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

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

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