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)