lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 28 Sep 2018 12:23:10 -0400
From:   Eric Whitney <enwlinux@...il.com>
To:     linux-ext4@...r.kernel.org
Cc:     tytso@....edu, Eric Whitney <enwlinux@...il.com>
Subject: [PATCH v3 0/6] ext4: rework bigalloc reserved cluster accounting

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ