[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190619172156.105508-1-zwisler@google.com>
Date: Wed, 19 Jun 2019 11:21:53 -0600
From: Ross Zwisler <zwisler@...omium.org>
To: linux-kernel@...r.kernel.org
Cc: Ross Zwisler <zwisler@...gle.com>, "Theodore Ts'o" <tytso@....edu>,
Alexander Viro <viro@...iv.linux.org.uk>,
Andreas Dilger <adilger.kernel@...ger.ca>,
Jan Kara <jack@...e.com>, linux-ext4@...r.kernel.org,
linux-fsdevel@...r.kernel.org, linux-mm@...ck.org,
Fletcher Woodruff <fletcherw@...gle.com>,
Justin TerAvest <teravest@...gle.com>
Subject: [PATCH 0/3] Add dirty range scoping to jbd2
This patch series fixes the issue I described here:
https://www.spinics.net/lists/linux-block/msg38274.html
Essentially the issue is that journal_finish_inode_data_buffers() operates
on the entire address space of each of the inodes associated with a given
journal entry. This means that if we have an inode where we are constantly
appending dirty pages we can end up waiting for an indefinite amount of
time in journal_finish_inode_data_buffers().
This series improves this situation in ext4 by scoping each of the inode
dirty ranges associated with a given transaction. Other users of jbd2
which don't (yet?) take advantage of this scoping (ocfs2) will continue to
have the old behavior.
Ross Zwisler (3):
mm: add filemap_fdatawait_range_keep_errors()
jbd2: introduce jbd2_inode dirty range scoping
ext4: use jbd2_inode dirty range scoping
fs/ext4/ext4_jbd2.h | 12 +++++------
fs/ext4/inode.c | 13 +++++++++---
fs/ext4/move_extent.c | 3 ++-
fs/jbd2/commit.c | 26 +++++++++++++++++------
fs/jbd2/journal.c | 2 ++
fs/jbd2/transaction.c | 49 ++++++++++++++++++++++++-------------------
include/linux/fs.h | 2 ++
include/linux/jbd2.h | 22 +++++++++++++++++++
mm/filemap.c | 22 +++++++++++++++++++
9 files changed, 114 insertions(+), 37 deletions(-)
--
2.22.0.410.gd8fdbe21b5-goog
Powered by blists - more mailing lists