From: Eric Whitney <enwlinux@gmail.com>
To: linux-ext4@vger.kernel.org
Cc: tytso@mit.edu, Eric Whitney <enwlinux@gmail.com>
Subject: [PATCH v3 0/6] ext4: rework bigalloc reserved cluster accounting
Date: Fri, 28 Sep 2018 12:23:10 -0400 [thread overview]
Message-ID: <20180928162316.16480-1-enwlinux@gmail.com> (raw)
Ext4 can make gross overestimates of the number of reserved clusters
required to handle bigalloc write requests under delayed allocation,
resulting in premature ENOSPC and quota limit failures.
These patches fix the implementation of reserved cluster accounting for
bigalloc file systems configured to use delayed allocation, and fix the
specific bugs described in bugzilla #151491.
v2: Moved functionality that revises pending reservations after
block/cluster allocation into ext4_es_insert_extent under
i_es_lock to maintain pending reservation and extents status
tree consistency. Renamed ext4_es_is_delunwrit to more
appropriate ext4_es_is_delonly. Fixed unwritten extent handling
bugs resulting in generic/112 failures.
v3: Moved definition for new function ext4_es_is_delonly from patch
4 to patch 3 to avoid a compilation error in the event of bisection,
as detected/reported by kbuild testing.
Eric Whitney (6):
ext4: generalize extents status tree search functions
ext4: add new pending reservation mechanism
ext4: fix reserved cluster accounting at delayed write time
ext4: reduce reserved cluster count by number of allocated clusters
ext4: adjust reserved cluster count when removing extents
ext4: fix reserved cluster accounting at page invalidation time
fs/ext4/ext4.h | 10 +-
fs/ext4/ext4_extents.h | 13 +
fs/ext4/extents.c | 595 +++++++++++++++++++---------------------
fs/ext4/extents_status.c | 654 ++++++++++++++++++++++++++++++++++++++++++--
fs/ext4/extents_status.h | 80 +++++-
fs/ext4/inode.c | 113 +++++---
fs/ext4/mballoc.c | 14 +-
fs/ext4/super.c | 8 +
include/trace/events/ext4.h | 99 +++++--
9 files changed, 1188 insertions(+), 398 deletions(-)
--
2.11.0
next reply other threads:[~2018-09-28 22:48 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-28 16:23 Eric Whitney [this message]
2018-09-28 16:23 ` [PATCH v3 1/6] ext4: generalize extents status tree search functions Eric Whitney
2018-09-28 16:23 ` [PATCH v3 2/6] ext4: add new pending reservation mechanism Eric Whitney
2018-09-28 16:23 ` [PATCH v3 3/6] ext4: fix reserved cluster accounting at delayed write time Eric Whitney
2018-09-28 16:23 ` [PATCH v3 4/6] ext4: reduce reserved cluster count by number of allocated clusters Eric Whitney
2018-09-28 16:23 ` [PATCH v3 5/6] ext4: adjust reserved cluster count when removing extents Eric Whitney
2018-09-28 16:23 ` [PATCH v3 6/6] ext4: fix reserved cluster accounting at page invalidation time Eric Whitney
2018-10-03 3:15 ` [PATCH v3 0/6] ext4: rework bigalloc reserved cluster accounting Theodore Y. Ts'o
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=20180928162316.16480-1-enwlinux@gmail.com \
--to=enwlinux@gmail.com \
--cc=linux-ext4@vger.kernel.org \
--cc=tytso@mit.edu \
/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;
as well as URLs for NNTP newsgroup(s).