Whamcloud - gitweb
Branch HEAD
[fs/lustre-release.git] / lustre / kernel_patches / patches / inode-nr_unused-2.6.9-rhel4.patch
1 diff -urp b1_4.RH_2_6_9_42_0_3.old/fs/fs-writeback.c b1_4.RH_2_6_9_42_0_3/fs/fs-writeback.c
2 --- b1_4.RH_2_6_9_42_0_3.old/fs/fs-writeback.c  2006-10-23 13:33:05.000000000 +0300
3 +++ b1_4.RH_2_6_9_42_0_3/fs/fs-writeback.c      2007-04-15 00:31:43.000000000 +0300
4 @@ -230,7 +230,6 @@ __sync_single_inode(struct inode *inode,
5                          * The inode is clean, unused
6                          */
7                         list_move(&inode->i_list, &inode_unused);
8 -                       inodes_stat.nr_unused++;
9                 }
10         }
11         wake_up_inode(inode);
12 @@ -244,6 +243,11 @@ static int
13  __writeback_single_inode(struct inode *inode,
14                         struct writeback_control *wbc)
15  {
16 +        if (!atomic_read(&inode->i_count))
17 +               WARN_ON(!(inode->i_state & I_WILL_FREE));
18 +       else
19 +               WARN_ON(inode->i_state & I_WILL_FREE);
20 +
21         if ((wbc->sync_mode != WB_SYNC_ALL) && (inode->i_state & I_LOCK)) {
22                 list_move(&inode->i_list, &inode->i_sb->s_dirty);
23                 return 0;
24 @@ -253,10 +257,8 @@ __writeback_single_inode(struct inode *i
25          * It's a data-integrity sync.  We must wait.
26          */
27         while (inode->i_state & I_LOCK) {
28 -               __iget(inode);
29                 spin_unlock(&inode_lock);
30                 __wait_on_inode(inode);
31 -               iput(inode);
32                 spin_lock(&inode_lock);
33         }
34         return __sync_single_inode(inode, wbc);
35 ä×ÏÉÞÎÙÅ ÆÁÊÌÙ b1_4.RH_2_6_9_42_0_3.old/fs/fs-writeback.o É b1_4.RH_2_6_9_42_0_3/fs/fs-writeback.o ÒÁÚÌÉÞÁÀÔÓÑ
36 diff -urp b1_4.RH_2_6_9_42_0_3.old/fs/inode.c b1_4.RH_2_6_9_42_0_3/fs/inode.c
37 --- b1_4.RH_2_6_9_42_0_3.old/fs/inode.c 2006-12-14 15:20:40.000000000 +0200
38 +++ b1_4.RH_2_6_9_42_0_3/fs/inode.c     2007-04-15 00:31:28.000000000 +0300
39 @@ -1054,6 +1054,7 @@ static void generic_forget_inode(struct 
40         if (inode->i_data.nrpages)
41                 truncate_inode_pages(&inode->i_data, 0);
42         clear_inode(inode);
43 +        wake_up_inode(inode);  
44         destroy_inode(inode);
45  }
46