All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 00/22] e2fsprogs: inline data refinement patch set
@ 2013-08-02  9:49 Zheng Liu
  2013-08-02  9:49 ` [PATCH v1 01/22] libext2fs: add INLINE_DATA into EXT2_LIB_SOFTSUPP_INCOMPAT Zheng Liu
                   ` (21 more replies)
  0 siblings, 22 replies; 67+ messages in thread
From: Zheng Liu @ 2013-08-02  9:49 UTC (permalink / raw)
  To: linux-ext4; +Cc: Zheng Liu, Theodore Ts'o

Hi all,

== Intro ==
Here's my first to refine the inline data patch set for e2fsprogs.  This
patch set has slept on my own tree for a very long time.  Sorry for my
late.

As Ted suggested, I revise the interface of libext2fs.  Now the following
interfaces are exported in libext2fs.  In ext_attr.c file three new
functions are added:
 * ext2fs_ext_attr_ibody_find()
   This function tries to find an EA entry in an inode.  It just gets the
   start entry and end entry, and calls ext2fs_ext_attr_find_entry() to
   find that entry that we want to search.

 * ext2fs_ext_attr_find_entry()
   This function traverses the entries to find an entry.

 * ext2fs_ext_attr_set_entry()
   This function tries to set an entry in an inode.

In inline_data.c file there are some functions that need to be exported:
 * ext2fs_inode_has_inline_data()
   This function determine whether EXT4_INLINE_DATA_FL flag is set or not.

 * ext2fs_inline_data_get_size()
   It returns the size of inline data.

 * ext2fs_inline_data_iterate()
   It is used to traverse the directory entries of a directory with
   inline data.

 * ext2fs_inline_data_check()
   This function is used by e2fsck to make sure that the inline data is
   valid.

 * ext2fs_inline_data_create()
   It tries to create inline data in an inode.

 * ext2fs_read_inline_data()
   Read inline data from an inode and copy them to buffer.

 * ext2fs_write_inline_data()
   Write the data to an inode.

 * ext2fs_try_to_write_inline_data()
   Try to write the data to an inode if the size of data is smaller
   than the size of inline data.  Otherwise, it returns
   EXT2_ET_INLINE_DATA_NO_SPACE.

== Changelog ==
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.

== TODO ==
 * Rebase against the latest e2fsprogs/master branch.

Here is the original Ted's git repo which tracks all original patches
[1].  I fork this repo in github.com and here is the url [2].  These
patches are against *e2fsprogs/pu* branch.

1. https://github.com/tytso/e2fsprogs-inline-patch-queue
2. https://github.com/gnehzuil/e2fsprogs-inline-patch-queue

Comments and feedbacks are all welcome.

Thanks,
						- Zheng

Zheng Liu (22):
  libext2fs: add INLINE_DATA into EXT2_LIB_SOFTSUPP_INCOMPAT
  libext2fs: add function to check inline_data flag for an inode
  libext2fs: add functions to operate on extended attribute
  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 mkdir and expanddir command support inline data
  debugfs: make lsdel command support inline data
  libext2fs: handle inline data in read/write function
  debugfs: handle inline_data feature in dirsearch command
  debugfs: handle inline_data feature in bmap command
  debugfs: handle inline_data in punch command
  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: add a unit test for inline data

 debugfs/debugfs.c                       |   11 +
 debugfs/htree.c                         |    4 +
 debugfs/lsdel.c                         |    3 +-
 e2fsck/pass1.c                          |  103 +++-
 e2fsck/pass2.c                          |  123 +++-
 e2fsck/pass3.c                          |   12 +
 e2fsck/problem.c                        |   15 +
 e2fsck/problem.h                        |    9 +
 e2fsck/rehash.c                         |    3 +-
 lib/ext2fs/Makefile.in                  |   16 +-
 lib/ext2fs/Makefile.pq                  |    1 +
 lib/ext2fs/block.c                      |    7 +
 lib/ext2fs/bmap.c                       |   15 +
 lib/ext2fs/dblist_dir.c                 |   10 +-
 lib/ext2fs/dir_iterate.c                |  102 +++-
 lib/ext2fs/expanddir.c                  |   18 +-
 lib/ext2fs/ext2_err.et.in               |   12 +
 lib/ext2fs/ext2_ext_attr.h              |   31 +
 lib/ext2fs/ext2_fs.h                    |    8 +
 lib/ext2fs/ext2fs.h                     |   42 +-
 lib/ext2fs/ext2fsP.h                    |   27 +
 lib/ext2fs/ext_attr.c                   |  186 ++++++
 lib/ext2fs/fileio.c                     |   19 +-
 lib/ext2fs/inline_data.c                |  966 +++++++++++++++++++++++++++++++
 lib/ext2fs/mkdir.c                      |  102 +++-
 lib/ext2fs/newdir.c                     |   33 ++
 lib/ext2fs/punch.c                      |   59 +-
 misc/mke2fs.8.in                        |    3 +
 misc/mke2fs.c                           |   14 +-
 misc/mke2fs.conf.in                     |    2 +-
 misc/tune2fs.8.in                       |    5 +
 misc/tune2fs.c                          |   17 +-
 tests/f_bad_disconnected_inode/expect.1 |    9 +
 33 files changed, 1908 insertions(+), 79 deletions(-)
 create mode 100644 lib/ext2fs/inline_data.c

-- 
1.7.9.7


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

end of thread, other threads:[~2013-10-14  3:05 UTC | newest]

Thread overview: 67+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-02  9:49 [PATCH v1 00/22] e2fsprogs: inline data refinement patch set Zheng Liu
2013-08-02  9:49 ` [PATCH v1 01/22] libext2fs: add INLINE_DATA into EXT2_LIB_SOFTSUPP_INCOMPAT Zheng Liu
2013-10-13  3:21   ` Theodore Ts'o
2013-08-02  9:49 ` [PATCH v1 02/22] libext2fs: add function to check inline_data flag for an inode Zheng Liu
2013-08-02  9:49 ` [PATCH v1 03/22] libext2fs: add functions to operate on extended attribute Zheng Liu
2013-08-05 17:34   ` Darrick J. Wong
2013-08-05 23:14     ` Zheng Liu
2013-10-14  1:55       ` Theodore Ts'o
2013-10-14  2:41         ` Zheng Liu
2013-10-11 22:51   ` Darrick J. Wong
2013-10-12  5:51     ` Zheng Liu
2013-10-12  8:32       ` Darrick J. Wong
2013-10-12  8:41         ` Zheng Liu
2013-10-12  9:02           ` Darrick J. Wong
2013-10-12  9:08             ` Zheng Liu
2013-08-02  9:49 ` [PATCH v1 04/22] libext2fs: handle inline data in dir iterator function Zheng Liu
2013-10-11 23:33   ` Darrick J. Wong
2013-10-12  5:55     ` Zheng Liu
2013-10-13 22:51   ` Theodore Ts'o
2013-10-14  3:07     ` Zheng Liu
2013-10-14  1:58   ` Theodore Ts'o
2013-08-02  9:49 ` [PATCH v1 05/22] libext2fs: handle inline_data in block " Zheng Liu
2013-10-13  3:55   ` Theodore Ts'o
2013-10-14  0:44     ` Theodore Ts'o
2013-10-14  2:49       ` Zheng Liu
2013-08-02  9:49 ` [PATCH v1 06/22] debugfs: make stat command support inline data Zheng Liu
2013-10-11 23:43   ` Darrick J. Wong
2013-10-12  0:07     ` Darrick J. Wong
2013-08-02  9:49 ` [PATCH v1 07/22] debugfs: make mkdir and expanddir " Zheng Liu
2013-10-12  0:21   ` Darrick J. Wong
2013-10-12  7:15     ` Zheng Liu
2013-08-02  9:49 ` [PATCH v1 08/22] debugfs: make lsdel " Zheng Liu
2013-08-02  9:49 ` [PATCH v1 09/22] libext2fs: handle inline data in read/write function Zheng Liu
2013-08-02  9:49 ` [PATCH v1 10/22] debugfs: handle inline_data feature in dirsearch command Zheng Liu
2013-10-12  0:30   ` Darrick J. Wong
2013-10-12  7:21     ` Zheng Liu
2013-08-02  9:49 ` [PATCH v1 11/22] debugfs: handle inline_data feature in bmap command Zheng Liu
2013-08-02  9:49 ` [PATCH v1 12/22] debugfs: handle inline_data in punch command Zheng Liu
2013-10-12  0:37   ` Darrick J. Wong
2013-10-12  7:22     ` Zheng Liu
2013-08-02  9:49 ` [PATCH v1 13/22] libext2fs: add inline_data feature into EXT2_LIB_FEATURE_INCOMPAT_SUPP Zheng Liu
2013-08-02  9:49 ` [PATCH v1 14/22] mke2fs: add inline_data support in mke2fs Zheng Liu
2013-10-12  0:27   ` Darrick J. Wong
2013-10-12  8:08     ` Zheng Liu
2013-10-12  8:18       ` Darrick J. Wong
2013-10-12  8:31         ` Zheng Liu
2013-10-12  8:32           ` Darrick J. Wong
2013-08-02  9:49 ` [PATCH v1 15/22] tune2fs: add inline_data feature in tune2fs Zheng Liu
2013-10-12  0:39   ` Darrick J. Wong
2013-10-12  8:16     ` Zheng Liu
2013-10-12  8:23       ` Darrick J. Wong
2013-10-12  8:33         ` Zheng Liu
2013-08-02  9:49 ` [PATCH v1 16/22] e2fsck: add problem descriptions and check inline data feature Zheng Liu
2013-08-02  9:49 ` [PATCH v1 17/22] e2fsck: check inline_data in pass1 Zheng Liu
2013-10-12  0:47   ` Darrick J. Wong
2013-10-12  8:17     ` Zheng Liu
2013-08-02  9:49 ` [PATCH v1 18/22] e2fsck: check inline_data in pass2 Zheng Liu
2013-08-02  9:49 ` [PATCH v1 19/22] e2fsck: check inline_data in pass3 Zheng Liu
2013-10-12  0:54   ` Darrick J. Wong
2013-10-12  9:06     ` Zheng Liu
2013-10-12  9:09       ` Darrick J. Wong
2013-10-12  9:17         ` Zheng Liu
2013-10-12  9:22           ` Darrick J. Wong
2013-10-12  9:32             ` Zheng Liu
2013-08-02  9:49 ` [PATCH v1 20/22] tests: change result in f_bad_disconnected_inode Zheng Liu
2013-08-02  9:49 ` [PATCH v1 21/22] mke2fs: enable inline_data feature on ext4dev filesystem Zheng Liu
2013-08-02  9:49 ` [PATCH v1 22/22] libext2fs: add a unit test for inline data Zheng Liu

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.