From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Zheng Liu <gnehzuil.liu@gmail.com>
Cc: linux-ext4@vger.kernel.org, "Theodore Ts'o" <tytso@mit.edu>,
Zheng Liu <wenqing.lz@taobao.com>
Subject: Re: [PATCH v3 00/30] e2fsprogs: inline data refinement patch set
Date: Fri, 6 Dec 2013 17:53:21 -0800 [thread overview]
Message-ID: <20131207015321.GC10143@birch.djwong.org> (raw)
In-Reply-To: <1386323897-2354-1-git-send-email-wenqing.lz@taobao.com>
On Fri, Dec 06, 2013 at 05:57:47PM +0800, Zheng Liu wrote:
> Hi all,
>
> This is the third version of inline data patch set for e2fsprogs. In
> this version, I made most changes according to Darrick's comments. As
> always any comment or suggestion are welcome.
>
> Ted, patch 01 ~ 08 are taken from Darrick's patchbomb. I don't touch
> them. Please let me know if I can do something for your review.
As soon as the last regression tests finish I will blast this out. Probably
tomorrow morning.
> Darrick, I don't pick up your patch that tries to handle _DIR_NO_SPACE
> error in ext2fs_link() because after applied that path some tests won't
> pass. So I prefer to put this problem into TODO list.
That patch turned out to be a disaster so I kicked it out of my patchbomb set.
I'll ... work on it later.
(Also, I probably won't get to reviewing this iteration for a couple of
days...)
--D
>
> changelog:
> v3:
> * Check inline_data feature in extended attribute API [patch 09]
> * Define a new interface (ext2fs_dirent_swab_in2/out2) [patch 10] for
> inline data and use them in ext2fs_inline_data_dir_iterate()
> [patch 11, 14]
> * Define a new flag (BLOCK_INLINE_DATA_CHANGED) to reflect that inline
> data has been changed [patch 17]
> * Use ext2fs_bmap2() in ext2fs_inline_data_expand() [patch 17]
> * Return EXT2_ET_INLINE_DATA_NO_BLOCK in ext2fs_bmap2() [patch 17]
> * Refactor out the code of ext2fs_inline_data_expand() [patch 19]
> * Remove useless variable 'start' [patch 19]
> * Typo fixes [patch 21,22]
> * Turn off inline_data feature in tune2fs [patch 22]
> * Change type from 'int' to 'unsigned int' for cache_size [patch 29]
>
> v2:
> * Rebase against e2fsprogs/next branch
> * Based against darrick's extended attribute API
> * Remove 'libext2fs: add INLINE_DATA into EXT2_LIB_SOFTSUPP_INCOMPAT'
> patch that has been applied
> * Refine the interface of inline data. Now no any interface is
> exported to outside caller. All interfaces are only exported
> for developers
> * Refactor ext2fs_inline_data_dir_iterate() so that it can call
> ext2fs_process_dir_block directly
> * Fix big-endian problem in handle parent inode in i_block
> * Remove ext2fs_inode_has_inline_data() interface
> * Export inode cache creation interface for unit test
> * Coding style fixes
> * Bug fixes
>
> v1:
> * Revise the interfaces of liext2fs.
>
> * Implement ext2fs_punch_inline_data in lib/ext2fs/punch.c. Now if you
> want to truncate an inode with inline data, you need to call
> ext2fs_punch(), and it will handle inline data.
>
> * Remove ext2fs_inline_data_dirsearch() function. Now we don't support
> dirsearch command for an inode with inline data in debugfs.
>
> * Ext2fs_mkdir() refinement. Now if we want to create a directory with
> inline data, we just need to call ext2fs_mkdir(). This function will
> try to create a new directory with inline data if inline_data feature
> is enabled.
>
> * Fix big-endian bug in some functions. When ext2fs_read_inode() tries
> to read an inode into memory, it will handle big-endian by itself.
> Thus, we don't need to handle it manually.
>
> * Fix a bug in e2fsck/pass3. When we try to expand a 'lost+found' dir,
> we don't need to handle inline data because this dir shouldn't have
> this flag.
>
> Regards,
> - Zheng
>
> Darrick J. Wong (8):
> libext2fs: support modifying arbitrary extended attributes
> libext2fs: various tweaks to the xattr editor APIs
> libext2fs: extend xattr api to query number of attrs
> libext2fs: fix memory leaks in extended attribute code
> libext2fs: fix block leak when releasing xattr block
> libext2fs: remove redundant code
> libext2fs: free key/value pairs before reading
> debugfs: dump all extended attributes
>
> Zheng Liu (22):
> libext2fs: check inline_data in ext2fs_xattrs_read/write
> libext2fs: define new dirent_swab interfaces for inline data
> libext2fs: handle inline data in dir iterator function
> libext2fs: handle inline_data in block iterator function
> debugfs: make stat command support inline data
> debugfs: make expand command support inline data
> debugfs: make mkdir command support inline data
> debugfs: make lsdel command support inline data
> debugfs: handle inline_data feature in bmap command
> debugfs: handle inline data feature in punch command
> libext2fs: handle inline data in read/write function
> libext2fs: add inline_data feature into EXT2_LIB_FEATURE_INCOMPAT_SUPP
> mke2fs: add inline_data support in mke2fs
> tune2fs: add inline_data feature in tune2fs
> e2fsck: add problem descriptions and check inline data feature
> e2fsck: check inline_data in pass1
> e2fsck: check inline_data in pass2
> e2fsck: check inline_data in pass3
> tests: change result in f_bad_disconnected_inode
> mke2fs: enable inline_data feature on ext4dev filesystem
> libext2fs: export inode cahce creation function
> libext2fs: add a unit test for inline data
>
> debugfs/debugfs.c | 104 ++--
> debugfs/filefrag.c | 12 +-
> debugfs/lsdel.c | 20 +-
> e2fsck/pass1.c | 84 ++-
> e2fsck/pass2.c | 128 ++++-
> e2fsck/pass3.c | 12 +
> e2fsck/problem.c | 14 +
> e2fsck/problem.h | 10 +
> e2fsck/rehash.c | 2 +
> lib/ext2fs/Makefile.in | 16 +-
> lib/ext2fs/Makefile.pq | 1 +
> lib/ext2fs/bmap.c | 7 +
> lib/ext2fs/dblist_dir.c | 16 +-
> lib/ext2fs/dir_iterate.c | 62 ++-
> lib/ext2fs/expanddir.c | 2 +
> lib/ext2fs/ext2_err.et.in | 27 +
> lib/ext2fs/ext2_fs.h | 10 +
> lib/ext2fs/ext2fs.h | 48 +-
> lib/ext2fs/ext2fsP.h | 24 +-
> lib/ext2fs/ext_attr.c | 856 +++++++++++++++++++++++++++++++
> lib/ext2fs/fileio.c | 106 ++++
> lib/ext2fs/inline_data.c | 811 +++++++++++++++++++++++++++++
> lib/ext2fs/inode.c | 8 +-
> lib/ext2fs/mkdir.c | 77 ++-
> lib/ext2fs/newdir.c | 25 +
> lib/ext2fs/punch.c | 28 +-
> lib/ext2fs/swapfs.c | 27 +-
> lib/ext2fs/valid_blk.c | 7 +
> misc/mke2fs.8.in | 3 +
> misc/mke2fs.c | 18 +-
> misc/mke2fs.conf.in | 2 +-
> misc/tune2fs.8.in | 3 +
> misc/tune2fs.c | 99 +++-
> tests/f_bad_disconnected_inode/expect.1 | 9 +
> tests/r_inline_xattr/expect | 6 +-
> 35 files changed, 2535 insertions(+), 149 deletions(-)
> create mode 100644 lib/ext2fs/inline_data.c
>
> --
> 1.7.9.7
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-12-07 1:53 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-06 9:57 [PATCH v3 00/30] e2fsprogs: inline data refinement patch set Zheng Liu
2013-12-06 9:57 ` [PATCH v3 01/30] libext2fs: support modifying arbitrary extended attributes Zheng Liu
2013-12-06 9:57 ` [PATCH v3 02/30] libext2fs: various tweaks to the xattr editor APIs Zheng Liu
2013-12-06 9:57 ` [PATCH v3 03/30] libext2fs: extend xattr api to query number of attrs Zheng Liu
2013-12-06 9:57 ` [PATCH v3 04/30] libext2fs: fix memory leaks in extended attribute code Zheng Liu
2013-12-06 9:57 ` [PATCH v3 05/30] libext2fs: fix block leak when releasing xattr block Zheng Liu
2013-12-06 9:57 ` [PATCH v3 06/30] libext2fs: remove redundant code Zheng Liu
2013-12-06 9:57 ` [PATCH v3 07/30] libext2fs: free key/value pairs before reading Zheng Liu
2013-12-06 9:57 ` [PATCH v3 08/30] debugfs: dump all extended attributes Zheng Liu
2013-12-06 9:57 ` [PATCH v3 09/30] libext2fs: check inline_data in ext2fs_xattrs_read/write Zheng Liu
2013-12-06 21:38 ` Darrick J. Wong
2013-12-07 3:45 ` Zheng Liu
2014-03-03 23:33 ` Darrick J. Wong
2013-12-06 9:57 ` [PATCH v3 10/30] libext2fs: define new dirent_swab interfaces for inline data Zheng Liu
2014-03-03 15:49 ` Theodore Ts'o
2014-03-13 16:32 ` jon ernst
2014-03-14 2:44 ` Theodore Ts'o
2013-12-06 9:57 ` [PATCH v3 11/30] libext2fs: handle inline data in dir iterator function Zheng Liu
2014-03-03 22:16 ` Theodore Ts'o
2014-03-03 23:31 ` Darrick J. Wong
2014-03-04 13:56 ` Theodore Ts'o
2014-03-04 4:48 ` Zheng Liu
2013-12-06 9:57 ` [PATCH v3 12/30] libext2fs: handle inline_data in block " Zheng Liu
2013-12-06 9:58 ` [PATCH v3 13/30] debugfs: make stat command support inline data Zheng Liu
2013-12-06 9:58 ` [PATCH v3 14/30] debugfs: make expand " Zheng Liu
2013-12-06 9:58 ` [PATCH v3 15/30] debugfs: make mkdir " Zheng Liu
2013-12-06 9:58 ` [PATCH v3 16/30] debugfs: make lsdel " Zheng Liu
2013-12-06 9:58 ` [PATCH v3 17/30] debugfs: handle inline_data feature in bmap command Zheng Liu
2013-12-06 9:58 ` [PATCH v3 18/30] debugfs: handle inline data feature in punch command Zheng Liu
2013-12-06 9:58 ` [PATCH v3 19/30] libext2fs: handle inline data in read/write function Zheng Liu
2014-03-03 23:57 ` Darrick J. Wong
2013-12-06 9:58 ` [PATCH v3 20/30] libext2fs: add inline_data feature into EXT2_LIB_FEATURE_INCOMPAT_SUPP Zheng Liu
2013-12-06 9:58 ` [PATCH v3 21/30] mke2fs: add inline_data support in mke2fs Zheng Liu
2013-12-06 9:58 ` [PATCH v3 22/30] tune2fs: add inline_data feature in tune2fs Zheng Liu
2013-12-10 21:06 ` Darrick J. Wong
2013-12-06 9:58 ` [PATCH v3 23/30] e2fsck: add problem descriptions and check inline data feature Zheng Liu
2013-12-06 9:58 ` [PATCH v3 24/30] e2fsck: check inline_data in pass1 Zheng Liu
2014-03-03 22:18 ` Theodore Ts'o
2014-03-04 4:51 ` Zheng Liu
2013-12-06 9:58 ` [PATCH v3 25/30] e2fsck: check inline_data in pass2 Zheng Liu
2013-12-06 9:58 ` [PATCH v3 26/30] e2fsck: check inline_data in pass3 Zheng Liu
2013-12-06 9:58 ` [PATCH v3 27/30] tests: change result in f_bad_disconnected_inode Zheng Liu
2013-12-06 9:58 ` [PATCH v3 28/30] mke2fs: enable inline_data feature on ext4dev filesystem Zheng Liu
2013-12-06 9:58 ` [PATCH v3 29/30] libext2fs: export inode cahce creation function Zheng Liu
2013-12-06 9:58 ` [PATCH v3 30/30] libext2fs: add a unit test for inline data Zheng Liu
2013-12-07 1:53 ` Darrick J. Wong [this message]
2013-12-07 3:43 ` [PATCH v3 00/30] e2fsprogs: inline data refinement patch set Zheng Liu
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=20131207015321.GC10143@birch.djwong.org \
--to=darrick.wong@oracle.com \
--cc=gnehzuil.liu@gmail.com \
--cc=linux-ext4@vger.kernel.org \
--cc=tytso@mit.edu \
--cc=wenqing.lz@taobao.com \
/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).