--- linux/fs/reiserfs/inode.c.o Fri Feb 1 14:08:22 2002
+++ linux/fs/reiserfs/inode.c Fri Feb 1 14:09:40 2002
@@ -1156,6 +1156,7 @@
/* a stale NFS handle can trigger this without it being an error */
pathrelse (&path_to_sd);
make_bad_inode(inode) ;
+ inode->i_nlink = 0;
return;
}
@@ -1188,6 +1189,27 @@
}
+/**
+ * reiserfs_find_actor() - "find actor" reiserfs supplies to iget4().
+ *
+ * @inode: inode from hash table to check
+ * @inode_no: inode number we are looking for
+ * @opaque: "cookie" passed to iget4(). This is &reiserfs_iget4_args.
+ *
+ * This function is called by iget4() to distinguish reiserfs inodes
+ * having the same inode numbers. Such inodes can only exist due to some
+ * error condition. One of them should be bad. Inodes with identical
+ * inode numbers (objectids) are distinguished by parent directory ids.
+ *
+ */
+static int reiserfs_find_actor( struct inode *inode,
+ unsigned long inode_no, void *opaque )
+{
+ struct reiserfs_iget4_args *args;
+
+ args = opaque;
+ return INODE_PKEY( inode ) -> k_dir_id == args -> objectid;
+}