patch-2.3.25 linux/fs/inode.c
Next file: linux/fs/ncpfs/dir.c
Previous file: linux/fs/filesystems.c
Back to the patch index
Back to the overall index
-  Lines: 25
-  Date:
Thu Oct 28 17:30:51 1999
-  Orig file: 
v2.3.24/linux/fs/inode.c
-  Orig date: 
Wed Oct 27 16:34:12 1999
diff -u --recursive --new-file v2.3.24/linux/fs/inode.c linux/fs/inode.c
@@ -518,8 +518,7 @@
 		spin_lock(&inode_lock);
 		/* We released the lock, so.. */
 		old = find_inode(sb, ino, head, find_actor, opaque);
-		if (!old)
-		{
+		if (!old) {
 			list_add(&inode->i_list, &inode_in_use);
 			list_add(&inode->i_hash, head);
 			inode->i_sb = sb;
@@ -546,7 +545,13 @@
 
 			return inode;
 		}
-		__iget(inode);
+
+		/*
+		 * Uhhuh, somebody else created the same inode under
+		 * us. Use the old inode instead of the one we just
+		 * allocated.
+		 */
+		__iget(old);
 		spin_unlock(&inode_lock);
 		destroy_inode(inode);
 		inode = old;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)