[Ocfs2-tools-commits] branch, dx_dirs, created. ocfs2-tools-1.4.0-532-g15ee384

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Wed Apr 28 12:36:43 PDT 2010


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Tools to manage the ocfs2 filesystem.".

The branch, dx_dirs has been created
        at  15ee384630c2c27ba2671c2e6015e11fdd448b42 (commit)

- Log -----------------------------------------------------------------
commit 15ee384630c2c27ba2671c2e6015e11fdd448b42
Author: Coly Li <coly.li at suse.de>
Date:   Tue Apr 27 15:50:59 2010 +0800

    dx_dirs: fix ocfs2_swap_dx_entry_list() for big endian
    
    As Tao Ma suggested, current ocfs2_swap_dx_entry_list() is
    buggy for big endian hardware, because after dl_list->de_count
    swapped, it is referenced in the following loop.
    
    This patch fixes this bug with adding an 'int to_cpu' argument, also
    modifies other routines who call ocfs2_swap_dx_entry_list().
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>
    Signed-off-by: Tao Ma <tao.ma at oracle.com>

commit ae71b56e1d84823c146118c8f8415f63db2b0f62
Author: Coly Li <coly.li at suse.de>
Date:   Tue Apr 27 15:50:18 2010 +0800

    dx_dirs: set OCFS2_INDEXED_DIR_FL after indexed tree gets built
    
    In ocfs2_dx_dir_build(), current code set OCFS2_INDEXED_DIR_FL to
    di->i_dyn_features before inserting dir entries into the indexed tree.
    If there is any error during the insertion, the corresponded dirent will
    be lost from the indexed tree. Though this error can be checked and
    fixed in fsck.ocfs2, it should be fixed.
    
    This patch modifies to set OCFS2_INDEXED_DIR_FL after
    ocfs2_dir_iterate() returns successfully. If ocfs2_dir_iterate() returns
    with error, ocfs2_dx_dir_build() will return error and stop to build the
    indexed tree for a specific directory. In this case, no dirent will be
    losted.
    
    Thanks to Tao Ma to catch this.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Cc: Mark Fasheh <mfasheh at suse.com>
    Cc: Tao Ma <tao.ma at oracle.com>

commit 36b52ee5154900acf7add6934e47e31d63c70ef8
Author: Coly Li <coly.li at suse.de>
Date:   Tue Apr 27 15:49:54 2010 +0800

    dx_dirs: stop dx insert iteration for callback error
    
    Callback ocfs2_dx_dir_insert() may encounter memory alloc or I/O error.
    These kind of errors can not return to caller of the callback directly,
    so the dir block iteration for dx insert can not stop immediately when
    such errors occure.
    
    This patch adds a member 'errcode_t err' to struct dx_insert_ctxt, which
    can catch the error and permit ocfs2_dx_dir_insert() returns
    OCFS2_EXTENT_ERROR to it's caller to stop the iteration immediately.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Cc: Mark Fasheh <mfasheh at suse.com>
    Cc: Tao Ma <tao.ma at oracle.com>

commit e84e79aeafbda2aaf9c7dc9b299a93d6b12d7d5c
Author: Coly Li <coly.li at suse.de>
Date:   Tue Apr 27 15:48:08 2010 +0800

    dx_dirs: stop iteration of dir trailer initialization for I/O error
    
    Callback dir_trailer_func() may encounter malloc or I/O error, these
    errors can not return to its caller directly. This patch add a member
    'errcode_t err' to struct trailer_ctxt, which can catch the error. By
    this fix, dir_trailer_func() can return OCFS2_EXTENT_ERROR to stop dir
    iteration immediately and can return the REAL error as well.
    
    Thanks to Tao Ma catches this error.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>
    Cc: Tao Ma <tao.ma at oracle.com>

commit b616f4ff4e06fa3e23fa22e5eb04831b4d36a05b
Author: Coly Li <coly.li at suse.de>
Date:   Tue Apr 27 15:47:35 2010 +0800

    dx_dirs: Improve information displayed by dump_dx_root()
    
    If dr->dr_suballoc_slot is OCFS2_INVALID_SLOT (which should not happen),
    should not display "Global", because there is not "Global" conception
    for dx root allocation slot. This patch fixes the display by
    "Invalid Slot".
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Cc: Mark Fasheh <mfasheh at suse.com>
    Cc: Tao Ma <tao.ma at oracle.com>

commit 6ac6c8376e91852a349553421301c16eb0184e44
Author: Coly Li <coly.li at suse.de>
Date:   Tue Apr 27 15:47:14 2010 +0800

    dx_dirs: unifiy feature string of indexed-dirs
    
    This patch changes the indexed-dirs fn_name of ocfs2_feature_name array
    from IndexedDirs to indexed-dirs. Which unitifies fn_name displayed in
    debugfs.ocfs2 to feature string 'indexed-dirs' used in mkfs.ocfs2 and
    tunefs.ocfs2.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Cc: Mark Fasheh <mfasheh at suse.com>
    Cc: Tao Ma <tao.ma at oracle.com>

commit fad78f8f194c8a55710b041d3964cf153c77ab1c
Author: Coly Li <coly.li at suse.de>
Date:   Tue Apr 27 15:46:49 2010 +0800

    dx_dirs: remove unncessary return value assignment
    
    This patch removes unnecessary return value assigned in
    ocfs2_dx_entries_iterate() and ocfs2_dx_frees_iterate().
    
    Thanks for Tao Ma for catching this.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Cc: Mark Fasheh <mfasheh at suse.com>
    Cc: Tao Ma <tao.ma at oracle.com>

commit 21c1ed8b67d8819307fd0271d36feefda249f229
Author: Coly Li <coly.li at suse.de>
Date:   Tue Apr 27 15:46:33 2010 +0800

    dx_dirs: check callback iter->dx_func() return value in dx_iterator()
    
    This patch makes dx_iterator() check returned value of callback
    iter->dx_func(). If an error returned from the callback, dx_iterator()
    returns OCFS2_EXTENT_ERROR to stop the iteration.
    
    Thanks to Tao Ma for catching the error.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Cc: Mark Fasheh <mfasheh at suse.com>
    Cc: Tao Ma <tao.ma at oracle.com>

commit 38162163f7f6296407bd99630a5185ea99b05fb3
Author: Coly Li <coly.li at suse.de>
Date:   Tue Apr 27 15:45:52 2010 +0800

    dx_dirs: stop iterate dir entries for I/O error
    
    Callback dx_iterator() may encounter an I/O error when calling
    ocfs2_read_dx_leaf(). The caller of dx_iterator is extent_iterate_el(),
    which does not accept error code other than OCFS2_EXTENT_ERROR and
    OCFS2_EXTENT_ABORT. The result is, dir entries iteration can not stop
    if there is an I/O error happens in dx_iterator().
    
    This patch add 'errcode_t err' member to struct dx_iterator_data, if
    error returned from ocfs2_read_dx_leaf(), the error code will be
    stored here, then dx_iterator() returns OCFS2_EXTENT_ERROR to make
    extent_iterate_el() quit.
    
    Thanks to Tao Ma for catching this error.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>
    Cc: Tao Ma <tao.ma at oracle.com>

commit 465ccaf7f739523974c3c29ee9d3028b75db8e6a
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Fri Apr 23 23:09:05 2010 -0700

    fsck.ocfs2: verify dirent -> dx entry linkages
    
    During pass2 we can trivially do a lookup on dirents while walking the
    directory tree. This will help us make sure that an index entry exists for
    each dirent. If an entry is not found, the users is prompted and the parent
    directory will be marked for an index rebuild.
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit c2d1964ada183efe8f6407aa4070c15caeca5853
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Tue Apr 20 10:20:24 2010 -0700

    libocfs2: fix ocfs2_init_dir() to retain indexed flag
    
    We were re-using the out of date 'cached inode' later in the function after
    ocfs2_dx_dir_build() (which updates and writes out the inode internally).
    
    As a result, ocfs2_init_dir() was accidentally clearing
    OCFS2_INDEXED_DIR_FL. Fix this by refreshing the cache after the call to
    ocfs2_dx_dir_build().
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit b7f2c062c5e0ae85cac55e86fe6a0665fe986197
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Tue Apr 20 10:19:54 2010 -0700

    libocfs2: fix flag check in ocfs2_init_dir()
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit f77efa10291032d9b460ff70dee5598295b161b8
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Mon Apr 19 22:26:47 2010 -0700

    mkfs.ocfs2: create root and orphan directories as indexed
    
    If the indexed dirs feature is enabled but the inline directories feature is
    for some reason disabled, we'll create sub-optimal (non-indexed) root and
    orphan directories. It's easy however at the end of mkfs.ocfs2 to simply
    index these.
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit ca951ed4fdb3eaba0fb56d75a22327c05faf9a52
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Mon Apr 19 21:36:37 2010 -0700

    dx_dirs: add check for invalid slot in ocfs2_new_dx_root()
    
    This can happen in the case of a system inode, such as the root or orphan
    directories.
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit 3dd2a254e8826359a620f91fed1f7e8c339310ae
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Mon Apr 19 17:17:44 2010 -0700

    tunefs.ocfs2: move o2ne_add_tailers() into libocfs2ne.c
    
    The prototype is already in libocfs2ne.h - this function is shared between
    feature_metaecc.c and feature_indexed_dirs.c so it should be in a shared c
    file as well.
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit 7f501044eeb79d72c78911c3b7e0d65fab85de07
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Mon Apr 19 16:25:48 2010 -0700

    fsck.ocfs2: prompt before truncating an invalid dir index
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit a163a9a70d73c7c86123a718a80bea9988580dd8
Author: Coly Li <coly.li at suse.de>
Date:   Sun Apr 11 16:10:11 2010 +0800

    dx_dirs: add an initial man page entry for indexed-dirs
    
    This patch add an initial man page entry for indexed-dirs feature
    string.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit 8f46137394e6ddea54038f8e5e8aed480fdcb563
Author: Coly Li <coly.li at suse.de>
Date:   Sun Apr 11 16:10:10 2010 +0800

    dx_dirs: try to install dir trailers when enable indexed-dirs
    
    If metaecc feature is not enabled, previuos indexed-dirs patches in
    ocfs2-tools does not install dir trailers and move the dir entries which
    lie in the trailer area. This patch tries to install dir trailers when
    enable indexed-dirs feature.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit 7f10f7c363d4ef1a152a0da20d4b5b83f0acd141
Author: Coly Li <coly.li at suse.de>
Date:   Sun Apr 11 16:10:09 2010 +0800

    dx_dirs: fix return value of walk_dirblock() when enable metaecc
    
    If there is no error, the return value 'ret' might be used with
    undefined initial value. This patch fixes the error by initiating
    it to 0.
    
    Reported-by: Vit Pelcak <vpelcak at novell.com>
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit 3a2a3a6105207549c6807561b0aa49acc234f4fa
Author: Coly Li <coly.li at suse.de>
Date:   Sun Apr 11 16:10:08 2010 +0800

    dx_dirs: build indexed trees when enabling indexed-dirs
    
    Previos enable indexed-dirs implementation only set superblock flag,
    does not build indexed trees for existed directories.
    Tis patch tries to build indexed trees for directories when enable
    indexed-dirs.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit be048a0a1788a6e7c8abcc553311e1599066ccd8
Author: Coly Li <coly.li at suse.de>
Date:   Sun Apr 11 16:10:07 2010 +0800

    dx_dirs: add disable indexed-dirs support in tunefs.ocfs2
    
    This patch truncates all directories' indexed tree if '--fs-features
    noindexed-tree' option is given. The indexed dirs
    related flags on directory inodes and superblock are cleared too.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit 9314dd84d0e04593c965aabc8425e2d9de88cd16
Author: Coly Li <coly.li at suse.de>
Date:   Sun Apr 11 16:10:06 2010 +0800

    dx_dirs: add 'blocknr' in callback of ocfs2_dir_iterate()
    
    In order to make ocfs2_dx_dir_insert() easier to set the dir block
    number to a dx record, a new parameter 'uint64_t
    blocknr' is added into the call back function parameter of
    ocfs2_dir_iterate(). This patch includes (part of) the
    related changes which are not mentioned in previous patches.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit 669937d9a555ed8db3fb7569d6d21a41441a2035
Author: Coly Li <coly.li at suse.de>
Date:   Sun Apr 11 16:10:05 2010 +0800

    dx_dirs: fsck.ocfs2 support
    
    This patch does a basic indexed dirs support in fsck.ocfs2.
    
    During pass2, if a directory block is changed, and indexed dirs in
    enabled, the indexed tree of this directory will be
    truncate, then rebuild with the modified directory data. All the
    modified directories' inode numbers are recored in a
    rb-tree, when all directories get scanned, truncate and rebuild the
    directories whose inode recorded in the rb-tree.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit 3de2f0e3e643b6ee03c481f8e6ec3eba30f2a94e
Author: Coly Li <coly.li at suse.de>
Date:   Sun Apr 11 16:10:04 2010 +0800

    dx_dirs: more library support for directory indexing
    
    This patch adds more library support for indexed dirs,
    - dx_root alloc/delete
    - dx_leaf alloc/delete
    - dx_root read/write
    - dx_leaf read/write
    - indexed tree insert/truncate
    - dx_root extent tree operations
    - indexed dir support in ocfs2_lookup_system_inode(),
      ocfs2_init_dir(), ocfs2_link(), ocfs2_unlink(),
      ocfs2_lookup().
    With this patch, indexed dirs support in fsck.ocfs2 is possible.
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit 94ca1d86a48d3ec420941cc940f3a64ce187faf9
Author: Coly Li <coly.li at suse.de>
Date:   Sun Apr 11 16:10:03 2010 +0800

    dx_dirs: add missing 'ocfs2_filesys *fs' parameter
    
    This patch add 'ocfs2_filesys *fs' parameter to
    ocfs2_swap_dx_root_to_cpu(), and fix the mismatched arguments when
    alling ocfs2_swap_extent_list_to_cpu().
    
    Signed-off-by: Coly Li <coly.li at suse.de>
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>

commit 134714a978d781dbcd1510820701b310511d226e
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Sun Apr 11 16:10:02 2010 +0800

    dx_dirs: Update for dr_num_entries
    
    This just adds the new field, swaps it appropriately, and prints it in
    debuggs.
    
    [Modified the patch for code rebase and cleanup -- Coly Li]
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>
    Signed-off-by: Coly Li <coly.li at suse.de>

commit 443bf3428b4e19dc6f3e11c72bf694a16a6ba86a
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Sun Apr 11 16:10:01 2010 +0800

    dx_dirs: Add tunefs.ocfs2 feature for indexed directories
    
    This only enables them for now. Disabling is a bit more involved, and
    will come later.
    
    [modified the patch for code rebase and cleanup -- Coly Li]
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>
    Signed-off-by: Coly Li <coly.li at suse.de>

commit d797ffdaf949fc50388c5f8866293dfe4cd3886b
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Sun Apr 11 16:10:00 2010 +0800

    dx_dirs: mkfs.ocfs2 support
    
    This adds only basic support to mkfs.ocfs2 to write the seed fields used
    in directory indexing. The feature string
    'indexed-dirs' is already there from a previous patch, so it is possible
    to create a new file system with the directory
    indexing feature turned on.
    
    Future improvements that are needed:
    
    - mkfs.ocfs2 should create the root directory and orphan dirs as
      indexed.
    - possibly also we want to do this for the system dir, but that might
      require some discussion.
    
    [modified the patch for code rebase and cleanup -- Coly Li]
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>
    Signed-off-by: Coly Li <coly.li at suse.de>

commit 45048f614f4ede5e40e4e9feacfaa73c2b56717d
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Sun Apr 11 16:09:59 2010 +0800

    dx_dirs: debugfs.ocfs2 support
    
    This adds a full set of functionality to debugfs.ocfs2 so that we can
    visualize and debug indexed directories. Aside
    from updates to other commands to dump newly added/used fields in old
    structures, we get the following debugfs.ocfs2 commands:
    
    dx_space - Show all entries in the free list
    dx_dump  - Show the directory index (including root block)
    dx_leaf  - Show a single directory index leaf block
    dx_root  - Show directory index root block, as well as any extent blocks
               for non-inline dx_roots.
    
    [modified the patch for code rebase and cleanup -- Coly Li]
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>
    Signed-off-by: Coly Li <coly.li at suse.de>

commit b9a07888495c26fdb0239a28ba4076954c8cb4c8
Author: Mark Fasheh <mfasheh at suse.com>
Date:   Sun Apr 11 16:09:58 2010 +0800

    dx_dirs: Add library support for directory indexing
    
    This patch updates ocs2_fs.h with the relevant directory indexing
    structures. Additionally, libocfs2/ is given swap
    functions for the new disk structures. The library also gets three new
    iteration functions:
    
    ocfs2_dx_entries_iterate() - to iterate all index entries in an inline,
    or external index.
    
    ocfs2_dx_frees_iterate() - an iterator for the dirblock free list.
    
    ocfs2_extent_iterate_dx_root() - iterate the extent blocks of an index
    tree.
    
    Caveats:
    
    Right now, this is all read-only. A major 'TODO' item is adding the
    appropriate API's to enable creation, deletion and
    various manipulation of the dx tree, as well as individual items.
    
    None of the other library code really knows about the directory index.
    This means that things like ocfs2_looup() is
    still using the old-style lookup via the unindexed dirent tree.
    
    We need to add support for the newly increased links_count maximum. This
    should probably be a seperate patch though.
    
    [modified the patch for code rebase and cleanup -- Coly Li]
    
    Signed-off-by: Mark Fasheh <mfasheh at suse.com>
    Signed-off-by: Coly Li <coly.li at suse.de>

-----------------------------------------------------------------------


hooks/post-receive
-- 
Tools to manage the ocfs2 filesystem.



More information about the Ocfs2-tools-commits mailing list