Whamcloud - gitweb
adding 2.6-sles10 target and kernel config files for the sles10 kernel
[fs/lustre-release.git] / lustre / kernel_patches / patches / ext3-use-after-free.patch
1  ./fs/ext3/namei.c |   11 +++++------
2  1 files changed, 5 insertions(+), 6 deletions(-)
3
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
7  {
8         int err = ext3_add_entry(handle, dentry, inode);
9         if (!err) {
10 -               d_instantiate(dentry, inode);
11 -               return 0;
12 +               err = ext3_mark_inode_dirty(handle, inode);
13 +               if (err == 0) {
14 +                       d_instantiate(dentry, inode);
15 +                       return 0;
16 +               }
17         }
18         ext3_dec_count(handle, inode);
19         iput(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);
25         }
26         ext3_journal_stop(handle, dir);
27         return err;
28 @@ -1586,7 +1588,6 @@ static int ext3_mknod (struct inode * di
29         if (!IS_ERR(inode)) {
30                 init_special_inode(inode, mode, rdev);
31                 err = ext3_add_nondir(handle, dentry, inode);
32 -               ext3_mark_inode_dirty(handle, inode);
33         }
34         ext3_journal_stop(handle, dir);
35         return err;
36 @@ -2035,7 +2036,6 @@ static int ext3_symlink (struct inode * 
37         }
38         EXT3_I(inode)->i_disksize = inode->i_size;
39         err = ext3_add_nondir(handle, dentry, inode);
40 -       ext3_mark_inode_dirty(handle, inode);
41  out_stop:
42         ext3_journal_stop(handle, dir);
43         return err;
44 @@ -2069,7 +2069,6 @@ static int ext3_link (struct dentry * ol
45         atomic_inc(&inode->i_count);
46  
47         err = ext3_add_nondir(handle, dentry, inode);
48 -       ext3_mark_inode_dirty(handle, inode);
49         ext3_journal_stop(handle, dir);
50         return err;
51  }
52
53 _