Indeed. I couldn't figure out how to get the system from reusing the
inode, and clear_inode(old_inode) was the only thing I could get to work.
Clearing old_inode->i_nlink also works, and since it is the correct way,
here is a patch to apply over the previously applied patch.
- Gordon
--- linux-2.1.115-prev/fs/vfat/namei.c Sun Aug 9 11:36:13 1998
+++ linux/fs/vfat/namei.c Sun Aug 9 11:36:40 1998
@@ -1771,6 +1771,8 @@
MSDOS_I(new_inode)->i_logstart = MSDOS_I(old_inode)->i_logstart;
MSDOS_I(new_inode)->i_attrs = MSDOS_I(old_inode)->i_attrs;
+ old_inode->i_nlink = 0;
+
fat_cache_inval_inode(old_inode);
mark_inode_dirty(new_inode);
@@ -1821,8 +1823,6 @@
d_move(old_dentry, new_dentry);
put_new_inode = 0;
}
-
- clear_inode(old_inode);
rename_done:
if (locked)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html