X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=fs%2Fdrop_caches.c;h=d72d52b904333767328235a2de720107503cdcf2;hb=7d9071a095023cd1db8fa18fa0d648dc1a5210e0;hp=5718cb9f7273e83a2fe6c7775dcf76c636dd908a;hpb=fee5429e028c414d80d036198db30454cfd91b7a;p=platform%2Fkernel%2Flinux-rpi.git diff --git a/fs/drop_caches.c b/fs/drop_caches.c index 5718cb9..d72d52b 100644 --- a/fs/drop_caches.c +++ b/fs/drop_caches.c @@ -17,7 +17,7 @@ static void drop_pagecache_sb(struct super_block *sb, void *unused) { struct inode *inode, *toput_inode = NULL; - spin_lock(&inode_sb_list_lock); + spin_lock(&sb->s_inode_list_lock); list_for_each_entry(inode, &sb->s_inodes, i_sb_list) { spin_lock(&inode->i_lock); if ((inode->i_state & (I_FREEING|I_WILL_FREE|I_NEW)) || @@ -27,13 +27,15 @@ static void drop_pagecache_sb(struct super_block *sb, void *unused) } __iget(inode); spin_unlock(&inode->i_lock); - spin_unlock(&inode_sb_list_lock); + spin_unlock(&sb->s_inode_list_lock); + invalidate_mapping_pages(inode->i_mapping, 0, -1); iput(toput_inode); toput_inode = inode; - spin_lock(&inode_sb_list_lock); + + spin_lock(&sb->s_inode_list_lock); } - spin_unlock(&inode_sb_list_lock); + spin_unlock(&sb->s_inode_list_lock); iput(toput_inode); }