Whamcloud - gitweb
land v0.9.1 on HEAD, in preparation for a 1.0.x branch
[fs/lustre-release.git] / lustre / kernel_patches / patches / ext3-use-after-free-suse.patch
1  ./fs/ext3/namei.c |   11 +++++------
2  1 files changed, 5 insertions(+), 6 deletions(-)
3
4 Index: linux-2.4.19.SuSE/./fs/ext3/namei.c
5 ===================================================================
6 --- linux-2.4.19.SuSE.orig/./fs/ext3/namei.c    Sun Nov 16 01:02:51 2003
7 +++ linux-2.4.19.SuSE/./fs/ext3/namei.c Sun Nov 16 01:14:50 2003
8 @@ -1523,8 +1523,11 @@
9  {
10         int err = ext3_add_entry(handle, dentry, inode);
11         if (!err) {
12 -               d_instantiate(dentry, inode);
13 -               return 0;
14 +               err = ext3_mark_inode_dirty(handle, inode);
15 +               if (err == 0) {
16 +                       d_instantiate(dentry, inode);
17 +                       return 0;
18 +               }
19         }
20         ext3_dec_count(handle, inode);
21         iput(inode);
22 @@ -1560,7 +1563,6 @@
23                 inode->i_op = &ext3_file_inode_operations;
24                 inode->i_fop = &ext3_file_operations;
25                 inode->i_mapping->a_ops = &ext3_aops;
26 -               ext3_mark_inode_dirty(handle, inode);
27                 err = ext3_add_nondir(handle, dentry, inode);
28         }
29         ext3_journal_stop(handle, dir);
30 @@ -1590,7 +1592,6 @@
31  #ifdef CONFIG_EXT3_FS_XATTR
32                 inode->i_op = &ext3_special_inode_operations;
33  #endif
34 -               ext3_mark_inode_dirty(handle, inode);
35                 err = ext3_add_nondir(handle, dentry, inode);
36         }
37         ext3_journal_stop(handle, dir);
38 @@ -2039,7 +2040,6 @@
39                 inode->i_size = l-1;
40         }
41         EXT3_I(inode)->i_disksize = inode->i_size;
42 -       ext3_mark_inode_dirty(handle, inode);
43         err = ext3_add_nondir(handle, dentry, inode);
44  out_stop:
45         ext3_journal_stop(handle, dir);
46 @@ -2073,7 +2073,6 @@
47         ext3_inc_count(handle, inode);
48         atomic_inc(&inode->i_count);
49  
50 -       ext3_mark_inode_dirty(handle, inode);
51         err = ext3_add_nondir(handle, dentry, inode);
52         ext3_journal_stop(handle, dir);
53         return err;