From: Al Viro Date: Fri, 30 Aug 2013 19:46:46 +0000 (-0400) Subject: only regular files with FMODE_WRITE need to be on s_files X-Git-Tag: v3.12-rc1~141^2~23 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=184cacabe274a0af65b3876e9cd95c9fdde069ea;p=platform%2Fkernel%2Flinux-stable.git only regular files with FMODE_WRITE need to be on s_files Signed-off-by: Al Viro --- diff --git a/fs/file_table.c b/fs/file_table.c index b44e4c5..322cd37 100644 --- a/fs/file_table.c +++ b/fs/file_table.c @@ -385,6 +385,10 @@ static inline void __file_sb_list_add(struct file *file, struct super_block *sb) */ void file_sb_list_add(struct file *file, struct super_block *sb) { + if (likely(!(file->f_mode & FMODE_WRITE))) + return; + if (!S_ISREG(file_inode(file)->i_mode)) + return; lg_local_lock(&files_lglock); __file_sb_list_add(file, sb); lg_local_unlock(&files_lglock); @@ -450,8 +454,6 @@ void mark_files_ro(struct super_block *sb) lg_global_lock(&files_lglock); do_file_list_for_each_entry(sb, f) { - if (!S_ISREG(file_inode(f)->i_mode)) - continue; if (!file_count(f)) continue; if (!(f->f_mode & FMODE_WRITE))