All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.