--- 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: _