--- fs/inode.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) Index: slub/fs/inode.c =================================================================== --- slub.orig/fs/inode.c 2007-06-06 16:03:46.000000000 -0700 +++ slub/fs/inode.c 2007-06-06 16:06:25.000000000 -0700 @@ -1396,10 +1396,18 @@ void kick_inodes(struct kmem_cache *s, i if (!inode) continue; - if (inode_has_buffers(inode) || inode->i_data.nrpages) { - if (remove_inode_buffers(inode)) - invalidate_mapping_pages(&inode->i_data, + if (inode == DIR) { + if (vfs_remove_directory()) { + v[i] = NULL; + continue; + } + } else { + + if (inode_has_buffers(inode) || inode->i_data.nrpages) { + if (remove_inode_buffers(inode)) + invalidate_mapping_pages(&inode->i_data, 0, -1); + } } if (inode->i_state & I_DIRTY)