From: Lee Jones <lee.jones@linaro.org>
To: lee.jones@linaro.org, gregkh@google.com, stable@vger.kernel.org
Subject: [PATCH 4.4 9/9] ext4: avoid unnecessary stalls in ext4_evict_inode()
Date: Fri, 22 Nov 2019 10:51:13 +0000 [thread overview]
Message-ID: <20191122105113.11213-9-lee.jones@linaro.org> (raw)
In-Reply-To: <20191122105113.11213-1-lee.jones@linaro.org>
From: Jan Kara <jack@suse.cz>
[ Upstream commit 3abb1a0fc2871f2db52199e1748a1d48a54a3427 ]
These days inode reclaim calls evict_inode() only when it has no pages
in the mapping. In that case it is not necessary to wait for transaction
commit in ext4_evict_inode() as there can be no pages waiting to be
committed. So avoid unnecessary transaction waiting in that case.
We still have to keep the check for the case where ext4_evict_inode()
gets called from other paths (e.g. umount) where inode still can have
some page cache pages.
Reported-by: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
fs/ext4/inode.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 3557c5717c8d..821349149726 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -212,7 +212,8 @@ void ext4_evict_inode(struct inode *inode)
*/
if (inode->i_ino != EXT4_JOURNAL_INO &&
ext4_should_journal_data(inode) &&
- (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode))) {
+ (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode)) &&
+ inode->i_data.nrpages) {
journal_t *journal = EXT4_SB(inode->i_sb)->s_journal;
tid_t commit_tid = EXT4_I(inode)->i_datasync_tid;
--
2.24.0
next prev parent reply other threads:[~2019-11-22 10:51 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-22 10:51 [PATCH 4.4 1/9] ARM: 8904/1: skip nomap memblocks while finding the lowmem/highmem boundary Lee Jones
2019-11-22 10:51 ` [PATCH 4.4 2/9] can: dev: can_dellink(): remove return at end of void function Lee Jones
2019-11-22 10:51 ` [PATCH 4.4 3/9] arm64: fix for bad_mode() handler to always result in panic Lee Jones
2019-11-22 10:51 ` [PATCH 4.4 4/9] cpufreq: Skip cpufreq resume if it's not suspended Lee Jones
2019-11-22 10:51 ` [PATCH 4.4 5/9] bcache: silence static checker warning Lee Jones
2019-11-22 10:51 ` [PATCH 4.4 6/9] dm: use blk_set_queue_dying() in __dm_destroy() Lee Jones
2019-11-22 10:51 ` [PATCH 4.4 7/9] mmc: block: Fix tag condition with packed writes Lee Jones
2019-11-22 10:51 ` [PATCH 4.4 8/9] ocfs2: remove ocfs2_is_o2cb_active() Lee Jones
2019-11-22 10:51 ` Lee Jones [this message]
2019-11-22 16:32 ` [PATCH 4.4 1/9] ARM: 8904/1: skip nomap memblocks while finding the lowmem/highmem boundary Lee Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191122105113.11213-9-lee.jones@linaro.org \
--to=lee.jones@linaro.org \
--cc=gregkh@google.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox