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]
Message-Id: <1351257825-3701-1-git-send-email-wenqing.lz@taobao.com>
Date:	Fri, 26 Oct 2012 21:23:37 +0800
From:	Zheng Liu <gnehzuil.liu@...il.com>
To:	linux-ext4@...r.kernel.org, jeff.liu@...cle.com
Cc:	tytso@....edu, hughd@...gle.com, xiaoqiangnk@...il.com,
	achender@...ux.vnet.ibm.com, lczerner@...hat.com,
	Zheng Liu <wenqing.lz@...bao.com>
Subject: [PATCH 0/8 v3] ext4: extent status tree (step 1)

Hi all,

Here is the v3 of extent status tree.  In this version, the biggest change is
the i_es_lock (a rwlock_t) instead of i_data_sem, which is introduced to protect
extent status tree.  Moreover I improve the SEEK_DATA/SEEK_HOLE.  In previous
version, the unwritten extent is as a data, and now it will lookup page cache to
determine it as a data or a hole.  When it has some data at the given range, the
unwritten extent will be as a data.  Otherwise, it will be as a hole.  Other
changes contain some bug fixes.

About introduction of extent status tree and future works in step2, please see
the comments in patch 2.

Here is a defect after introducing SEEK_DATA/SEEK_HOLE support, which will cause
xfstest #285 failure when the file is block-mapped because in ext4 fallocate(2)
is not supported by block-mapped file.  However, in current version of xfstest,
it cannot trigger any failure because in xfstest the test case has a bug that
will cause no error is reported from #285.  I have submitted a patch to fix it,
but it still doesn't be applied.  Thus, if someone are willing to test
SEEK_DATA/SEEK_HOLE patch, please apply this patch firstly [1].

1. http://patchwork.xfs.org/patch/4276/

I really thanks Jeff Liu, who gives me some advices and inspires me about
SEEK_DATA/SEEK_HOLE improvement, and the function, which looks up page cache to
determine whether an unwritten extent is as a data or a hole, is inspired by
his work for xfs (d126d43f631f996daeee5006714fed914be32368).  Thus, I add a
Signed-off-by for his crediting.

Jeff, I really appreicate if you could allow me to add Signed-off-by in patch 8.
If doing like this is incorrect, please let me know.  Thanks!

v3 <- v2:
 - add rwlock to protect extent status tree
 - improve SEEK_DATA/SEEK_HOLE
 - fix some bugs

Here is the second version:
http://lwn.net/Articles/512899/ 

v2 <- v1:
 - add a BUG_ON to do a sanity check in extent_status_end
 - fix off-by-one problem in extent_status_end accroding to Lukas's comment
 - add more detailed comments in ext4_es_find_extent
 - try to lookup in extent tree cache firstly in ext4_es_find_extent
 - rename ext4_es_add_space to ext4_es_insert_extent
 - rename ext4_es_remove_space to ext4_es_remove_extent

The first version is in this link:
http://www.spinics.net/lists/linux-ext4/msg33101.html

Any feedbacks are appreciated.  Thanks!

Regards,
Zheng
---
Zheng Liu (8):
      ext4: add two structures supporting extent status tree
      ext4: add operations on extent status tree
      ext4: initialize extent status tree
      ext4: let ext4 maintain extent status tree
      ext4: add some tracepoints in extent status tree
      ext4: reimplement ext4_find_delay_alloc_range on extent status tree
      ext4: reimplement fiemap on extent status tree
      ext4: introduce lseek SEEK_DATA/SEEK_HOLE support

 fs/ext4/Makefile            |   2 +-
 fs/ext4/ext4.h              |  10 +-
 fs/ext4/ext4_extents.h      |   3 +-
 fs/ext4/extents.c           | 305 +++++-----------------------------
 fs/ext4/extents_status.c    | 499 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 fs/ext4/extents_status.h    |  45 +++++
 fs/ext4/file.c              | 334 ++++++++++++++++++++++++++++++++++++-
 fs/ext4/indirect.c          |   1 +
 fs/ext4/inode.c             |  91 ++++------
 fs/ext4/super.c             |  14 +-
 include/trace/events/ext4.h | 101 +++++++++++
 11 files changed, 1078 insertions(+), 327 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ