1 ./fs/ext3/namei.c | 11 +++++------
2 1 files changed, 5 insertions(+), 6 deletions(-)
4 --- linux-2.4.20/./fs/ext3/namei.c~ext3-use-after-free 2003-04-08 23:35:51.000000000 -0600
5 +++ linux-2.4.20-braam/./fs/ext3/namei.c 2003-04-08 23:35:51.000000000 -0600
6 @@ -1521,8 +1521,11 @@ static int ext3_add_nondir(handle_t *han
8 int err = ext3_add_entry(handle, dentry, inode);
10 - d_instantiate(dentry, inode);
12 + err = ext3_mark_inode_dirty(handle, inode);
14 + d_instantiate(dentry, inode);
18 ext3_dec_count(handle, inode);
20 @@ -1559,7 +1562,6 @@ static int ext3_create (struct inode * d
21 inode->i_fop = &ext3_file_operations;
22 inode->i_mapping->a_ops = &ext3_aops;
23 err = ext3_add_nondir(handle, dentry, inode);
24 - ext3_mark_inode_dirty(handle, inode);
26 ext3_journal_stop(handle, dir);
28 @@ -1586,7 +1588,6 @@ static int ext3_mknod (struct inode * di
30 init_special_inode(inode, mode, rdev);
31 err = ext3_add_nondir(handle, dentry, inode);
32 - ext3_mark_inode_dirty(handle, inode);
34 ext3_journal_stop(handle, dir);
36 @@ -2035,7 +2036,6 @@ static int ext3_symlink (struct inode *
38 EXT3_I(inode)->i_disksize = inode->i_size;
39 err = ext3_add_nondir(handle, dentry, inode);
40 - ext3_mark_inode_dirty(handle, inode);
42 ext3_journal_stop(handle, dir);
44 @@ -2069,7 +2069,6 @@ static int ext3_link (struct dentry * ol
45 atomic_inc(&inode->i_count);
47 err = ext3_add_nondir(handle, dentry, inode);
48 - ext3_mark_inode_dirty(handle, inode);
49 ext3_journal_stop(handle, dir);