linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/30] e2fsprogs: inline data refinement patch set
@ 2013-12-06  9:57 Zheng Liu
  2013-12-06  9:57 ` [PATCH v3 01/30] libext2fs: support modifying arbitrary extended attributes Zheng Liu
                   ` (30 more replies)
  0 siblings, 31 replies; 48+ messages in thread
From: Zheng Liu @ 2013-12-06  9:57 UTC (permalink / raw)
  To: linux-ext4; +Cc: Theodore Ts'o, Darrick J. Wong, Zheng Liu

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.

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.

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


^ permalink raw reply	[flat|nested] 48+ messages in thread
* Re: [PATCH v3 11/30] libext2fs: handle inline data in dir iterator function
@ 2014-03-06 16:31 Theodore Ts'o
  0 siblings, 0 replies; 48+ messages in thread
From: Theodore Ts'o @ 2014-03-06 16:31 UTC (permalink / raw)
  To: Darrick J. Wong; +Cc: Zheng Liu, linux-ext4, Zheng Liu

> I've updated the pu branch with the inline data patches, so if you and
> Zheng could take a look at it and sanity check it, I'd really
> appreicate it.  Thanks!!

The inline data patches have now graduated into the "next" branch.

If you could do some sanity testing, that would be great.

Thanks!!

						- Ted

^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2014-03-14  2:44 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [PATCH v3 00/30] e2fsprogs: inline data refinement patch set Darrick J. Wong
2013-12-07  3:43   ` Zheng Liu
  -- strict thread matches above, loose matches on Subject: below --
2014-03-06 16:31 [PATCH v3 11/30] libext2fs: handle inline data in dir iterator function Theodore Ts'o

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).