Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Kernel v2.4.16 /fs/inode.c

Filename:/fs/inode.c
Lines Added:13
Lines Deleted:10
Also changed in: (Previous) 2.4.16-pre1  2.4.15-greased-turkey  2.4.15-pre9  2.4.15-pre8  2.4.15-pre7  2.4.15-pre6 
(Following) 2.4.17-pre3  2.4.17-pre4  2.4.17-pre5  2.4.17-pre6  2.4.17-pre7  2.4.17-pre8 

Location
[  2.4.16
  [  fs
     o  inode.c

Patch

diff -Nur linux-2.4.15/fs/inode.c linux/fs/inode.c
--- linux-2.4.15/fs/inode.c   Thu Nov 22 16:38:31 2001
+++ linux/fs/inode.c   Sat Nov 24 16:22:41 2001
@@ -1065,24 +1065,27 @@
          if (inode->i_state != I_CLEAR)
             BUG();
       } else {
-         if (!list_empty(&inode->i_hash) && sb && sb->s_root) {
+         if (!list_empty(&inode->i_hash)) {
             if (!(inode->i_state & (I_DIRTY|I_LOCK))) {
                list_del(&inode->i_list);
                list_add(&inode->i_list, &inode_unused);
             }
             inodes_stat.nr_unused++;
             spin_unlock(&inode_lock);
-            return;
-         } else {
-            list_del_init(&inode->i_list);
+            if (!sb || sb->s_flags & MS_ACTIVE)
+               return;
+            write_inode_now(inode, 1);
+            spin_lock(&inode_lock);
+            inodes_stat.nr_unused--;
             list_del_init(&inode->i_hash);
-            inode->i_state|=I_FREEING;
-            inodes_stat.nr_inodes--;
-            spin_unlock(&inode_lock);
-            if (inode->i_data.nrpages)
-               truncate_inode_pages(&inode->i_data, 0);
-            clear_inode(inode);
          }
+         list_del_init(&inode->i_list);
+         inode->i_state|=I_FREEING;
+         inodes_stat.nr_inodes--;
+         spin_unlock(&inode_lock);
+         if (inode->i_data.nrpages)
+            truncate_inode_pages(&inode->i_data, 0);
+         clear_inode(inode);
       }
       destroy_inode(inode);
    }


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.