+
+#ifdef plock
+#undef plock
+#endif
+#ifdef prele
+#undef prele
+#endif
+/*
+ * Lock an inode (should be called ilock).
+ * If its already locked,
+ * set the WANT bit and sleep.
+ */
+plock(ip)
+register struct inode *ip;
+{
+
+ while(ip->i_flag&ILOCK) {
+ ip->i_flag |= IWANT;
+ sleep((caddr_t)ip, PINOD);
+ }
+ ip->i_flag |= ILOCK;
+}
+
+/*
+ * Unlock an inode.
+ * If WANT bit is on,
+ * wakeup.
+ */
+prele(ip)
+register struct inode *ip;
+{
+
+ ip->i_flag &= ~ILOCK;
+ if(ip->i_flag&IWANT) {
+ ip->i_flag &= ~IWANT;
+ wakeup((caddr_t)ip);
+ }
+}