---

 fs/ext3/namei.c |    3 +++
 1 files changed, 3 insertions(+)

diff -puN fs/ext3/namei.c~ext3-inode-use-after-free-fix fs/ext3/namei.c
--- 25/fs/ext3/namei.c~ext3-inode-use-after-free-fix	2004-01-28 11:56:53.000000000 -0800
+++ 25-akpm/fs/ext3/namei.c	2004-01-28 11:59:02.000000000 -0800
@@ -1880,6 +1880,8 @@ int ext3_orphan_add(handle_t *handle, st
 	if (!err)
 		list_add(&EXT3_I(inode)->i_orphan, &EXT3_SB(sb)->s_orphan);
 
+	atomic_inc(&inode->i_count);
+
 	jbd_debug(4, "superblock will point to %ld\n", inode->i_ino);
 	jbd_debug(4, "orphan inode %ld will point to %d\n",
 			inode->i_ino, NEXT_ORPHAN(inode));
@@ -1959,6 +1961,7 @@ out_err:
 	ext3_std_error(inode->i_sb, err);
 out:
 	unlock_super(inode->i_sb);
+	iput(inode);
 	return err;
 
 out_brelse:

_
