+ struct proc *p = curproc; /* XXX */
+ struct ihashhead *ipp;
+
+ /* lock the inode, then put it on the appropriate hash list */
+ lockmgr(&ip->i_lock, LK_EXCLUSIVE, (struct simplelock *)0, p);
+
+ simple_lock(&ufs_ihash_slock);
+ ipp = INOHASH(ip->i_dev, ip->i_number);
+ LIST_INSERT_HEAD(ipp, ip, i_hash);
+ simple_unlock(&ufs_ihash_slock);
+}
+
+/*
+ * Remove the inode from the hash table.
+ */
+void
+ufs_ihashrem(ip)
+ struct inode *ip;
+{
+ struct inode *iq;
+
+ simple_lock(&ufs_ihash_slock);
+ LIST_REMOVE(ip, i_hash);
+#ifdef DIAGNOSTIC
+ ip->i_hash.le_next = NULL;
+ ip->i_hash.le_prev = NULL;
+#endif
+ simple_unlock(&ufs_ihash_slock);