[Ocfs2-tools-commits] branch, master, updated. ocfs2-tools-1.4.0-461-gc4549f7

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Thu Feb 11 18:52:32 PST 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, master has been updated
       via  c4549f7d751292646ff704f9d5fa31d57e743dd0 (commit)
       via  e54dca82bd881bceb43807d36193d907ddb79aa3 (commit)
       via  c6d4be06a58109bc4ff8cfc727ead1d4048fb250 (commit)
       via  599aa9a91422f99051fddb8d999a6ce16cb22daf (commit)
       via  eb0c2ef12c083893c3f40059d9df98bb051bfd0e (commit)
       via  2c94fb736567b1892cf132f350f702bcbd0b3b84 (commit)
       via  43c3d2f11042320d9445cc51d8edcb3bd9d6cc53 (commit)
       via  296e0ed0c6e3e0a821fdf7779aef6c9f6a47d8e1 (commit)
       via  69afd39bf27f84f6ec9c23615eb61b61d35a0ddf (commit)
       via  fd728351423fbfc3c095d7f6727272f731ea76d8 (commit)
       via  6fe784059de20d4d3fbc119c95ec4d3cc0d63dde (commit)
       via  bd14d9725eb488b343bdf51892aafa0ed8920d1b (commit)
       via  9cd897489441ad4b35b6221813c32ad7aecd3650 (commit)
       via  469a7c39e83f084cbe693ced0c7190016f14c0ec (commit)
       via  5b4f51ce20df84ec36aa30d7166094d468f43a07 (commit)
       via  b08131b65e34e77c99ae3b2daeb459ce2e530002 (commit)
       via  c244f0155b8a04851eb0f72927516a82f3f01170 (commit)
       via  d8c3d3130115d2be887b3c7ba2399b89585f52f2 (commit)
       via  782c860e3c010bf79f45d984f85e8a1db6d31c04 (commit)
       via  a8bcdc562c77247033f6f460eb5e15c97d848668 (commit)
       via  57c2e791ef6e5c8981936246ecb785abb4a90fb7 (commit)
       via  978e49fc4e7df6a0320ab143b6528a2fcebe8677 (commit)
       via  6ba3950d03057c968f0fdf59661732e3d05fe3da (commit)
       via  2ef17e968a6993417a5835c4e999897ffe76a394 (commit)
       via  4fdce42fe84d5a7d40616ef56dd1f237f56ed457 (commit)
       via  94dcb156f5c8ab3ca5a5cb59d59f3b2b7b94e483 (commit)
       via  97139486f983cc4bdb2b08e8eb753d47c8791b63 (commit)
       via  02819180ea513c55ab4dce2f0b8672b3cf712047 (commit)
       via  c1eed256197e387d33af514ddbeac8cb160980c5 (commit)
       via  41beedc66bf8a0381937e5003a39b6b070a39cdc (commit)
       via  5d986f236b1107f860c85afed63fc600eb8d686a (commit)
       via  ac633aec2415667f7d396ab0eda0797d6b99477b (commit)
       via  2f898f01a5d7a5ff40a5155fa7f86f0361561953 (commit)
       via  2bc743304531133b238984c40a4842f39cca3e54 (commit)
       via  6887dc99deebcab975e5cb1ef58952d5f1587696 (commit)
       via  fc29f9425468d6a4198c4b1d03966a7c5226ed8d (commit)
       via  dbcdec122f808f5b123794a93ac9c7f51c5ea143 (commit)
       via  62ae31fb25200a2a40231078f8b9623dd08913c0 (commit)
       via  89a458b295ab7609efab4af02a93e1f27e0d7173 (commit)
       via  285daee909d170e60e4721f72dd331cc0cf43614 (commit)
       via  6555aad14803eb66906ce126e97101582d42797a (commit)
       via  a80abee9da601e83b1c8a022c2e69025cc23b5e4 (commit)
       via  1b72e132dabb50a3c2e6ca54809c98fc0206d118 (commit)
       via  8391aa50440ecaae6c43ca7a9d152b0324943c95 (commit)
       via  2b1c540a1e8a1e15f88906d1a5e51f556fb154a6 (commit)
       via  03946ce0da947771434d1d3337a12203d7cb2ab4 (commit)
       via  9cdb184ffdc5e0ea18426037f1b93a9e5ba41a49 (commit)
       via  4ced4bd46e0e202d4d6cb834e206203531a19295 (commit)
       via  3a81c0f592aefeeeeaf7630f70b250de869c7955 (commit)
       via  2a27f9fa327ef2786c6bade03a441f117a6bbe07 (commit)
       via  dc4b93e1be2d48f725049d41177c2e894f0e8adf (commit)
      from  f0d61e9ab703e5290b0f6780886c0aaae70813b2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit c4549f7d751292646ff704f9d5fa31d57e743dd0
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Feb 2 14:11:19 2010 +0800

    fswreck: Add corruption for DUP_CLUSTERS_ADD_REFCOUNT.
    
    DUP_CLUSTERS_ADD_REFCOUNT is used to improve the process
    we handle duplicated clusters. So we can just corrupt
    the root extent block so that all the refcounted clusters
    will be treated as duplicate clusters.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit e54dca82bd881bceb43807d36193d907ddb79aa3
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Feb 2 14:09:13 2010 +0800

    fswreck: Add corruption for refcount record.
    
    Add corruption for refcount record:
    REFCOUNT_REC_REDUNDANT and REFCOUNT_COUNT_INVALID.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit c6d4be06a58109bc4ff8cfc727ead1d4048fb250
Author: Tao Ma <tao.ma at oracle.com>
Date:   Wed Feb 3 09:17:13 2010 +0800

    fswreck: add corruption for rf_clusters.
    
    fswreck: add corruption for rf_clusters.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 599aa9a91422f99051fddb8d999a6ce16cb22daf
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    fswreck: Add basic corruption for refcount_list.
    
    Add corruption for refcount_list:
    REFCOUNT_LIST_COUNT, REFCOUNT_LIST_USED, REFCOUNT_CLUSTER_RANGE,
    REFCOUNT_CLUSTER_COLLISION and REFCOUNT_LIST_EMPTY.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit eb0c2ef12c083893c3f40059d9df98bb051bfd0e
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    fswreck: Add refcount block corruption.
    
    Add some basic corruptions for a refcount block:
    RB_BLKNO, RB_GEN, RB_GEN_FIX, RB_PARENT.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 2c94fb736567b1892cf132f350f702bcbd0b3b84
Author: Tao Ma <tao.ma at oracle.com>
Date:   Mon Feb 1 14:31:07 2010 +0800

    fswreck: Add inode corruptions.
    
    Add some basic inode corruptions:
    EXTENT_MARKED_REFCOUNTED, REFCOUNT_FLAG_INVALID and
    REFCOUNT_LOC_INVALID.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 43c3d2f11042320d9445cc51d8edcb3bd9d6cc53
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    libocfs2: Add REFCOUNT_TREE to the supported feature list.
    
    Add OCFS2_FEATURE_INCOMPAT_REFCOUNT_TREE to the list of features
    supported by ocfs2-tools.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>
    Signed-off-by: Tao Ma <tao.ma at oracle.com>

commit 296e0ed0c6e3e0a821fdf7779aef6c9f6a47d8e1
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Jan 26 09:10:05 2010 +0800

    ocfs2: Add the REFLINK ioctl(2) definition.
    
    This is an ocfs2-specific ioctl(2) right now.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>
    Signed-off-by: Tao Ma <tao.ma at oracle.com>

commit 69afd39bf27f84f6ec9c23615eb61b61d35a0ddf
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    fsck.ocfs2: User refcount to handle dup_clusters.
    
    In the old times, when we meet with a duplicate
    cluster, we clone the 2 files. It is OK but it
    is also time-consuming and space-consuming.
    
    Now With reflink, we will try to create refcount
    tree first for these files and add refcount rec
    so that we avoid duplicating inodes.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit fd728351423fbfc3c095d7f6727272f731ea76d8
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    fsck.ocfs2: Add dup_owner to for_each_owner.
    
    When use refcount to handle dup_clusters, we need
    to add something to dup_owner and use it in
    for_each_owner. So add it to the callback.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 6fe784059de20d4d3fbc119c95ec4d3cc0d63dde
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Feb 2 14:02:50 2010 +0800

    fsck.ocfs2: Add rf_count check for refcount extent tree.
    
    We have a list of all the files which refering the
    refcount tree, so we can check rf_count easily.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit bd14d9725eb488b343bdf51892aafa0ed8920d1b
Author: Tao Ma <tao.ma at oracle.com>
Date:   Fri Jan 29 14:16:39 2010 +0800

    libocfs2: Add helper function for creating and attaching refcount tree.
    
    In fsck.ocfs2, sometimes we need to create a new refcount tree
    or attach a file to a refcount tree. So add the helper function.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 9cd897489441ad4b35b6221813c32ad7aecd3650
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Feb 9 09:29:41 2010 +0800

    fsck.ocfs2: Check refcount of clusters.
    
    As we have added refcounted clusters into rb-tree,
    now we can rebuild the refcount tree according to
    these result.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 469a7c39e83f084cbe693ced0c7190016f14c0ec
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    libocfs2: Add ocfs2_change_refcount.
    
    In fsck.ocfs2, sometimes we need to change some clusters'
    refcount in the refcount tree. So this patch adds
    the function ocfs2_change_refcount.
    
    We just add a new parameter 'value' to __ocfs2_increase_refcount
    so that it can add any number or even decrease a refcount.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 5b4f51ce20df84ec36aa30d7166094d468f43a07
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    fsck.ocfs2: Store refcounted clusters.
    
    As for the leaf extent record, we generize a function
    mark_rec_alloc_func in case they are allocated from the
    global_bitmap. As for refcounted clusters, we store them
    to a rb-tree so that we can check them later.
    For the leaf refcount rec, they are allocated from extent
    alloc, so no need to set them.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit b08131b65e34e77c99ae3b2daeb459ce2e530002
Author: Tao Ma <tao.ma at oracle.com>
Date:   Wed Feb 3 09:36:20 2010 +0800

    fsck.ocfs2: Record refcount tree we have checked.
    
    We check refcount tree if an inode have one. But there
    are many inodes sharing the same tree, and we only need
    to check once.
    
    This patch adds a rb-tree to store the already-checked
    refcount tree so that we can skip them. Also we added
    the checked inodes to a list so that it can be used later
    by refcounted clusters check later.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit c244f0155b8a04851eb0f72927516a82f3f01170
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:04 2010 +0800

    fsck.ocfs2: Add check for refcount tree in pass1.
    
    In pass1, after we check inode field, we will check refcount
    tree if it exists. Remove the root tree if it is invalid.
    
    Note:
    This patch doesn't handle the issue of redundant check
    of refcount tree for reflinked inodes. It will resolved
    by the next patch.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit d8c3d3130115d2be887b3c7ba2399b89585f52f2
Author: Tao Ma <tao.ma at oracle.com>
Date:   Mon Feb 1 15:46:20 2010 +0800

    fsck.ocfs2: Add cluster check for refcount extent tree.
    
    As we now use check_el to check the refcount extent tree,
    we can get some helpful information from extent_info, such
    as ei_clusters and they can be used to rf_clusters.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 782c860e3c010bf79f45d984f85e8a1db6d31c04
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:12 2010 +0800

    fsck.ocfs2: Add check for leaf extent rec.
    
    We have made the check of leaf extent rec generic. As for refcount
    tree, leaf extent rec points to a refcount block, so we have to
    check refcount list in it.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit a8bcdc562c77247033f6f460eb5e15c97d848668
Author: Tao Ma <tao.ma at oracle.com>
Date:   Wed Feb 3 15:15:29 2010 +0800

    fsck.ocfs2: Add check for refcount record list.
    
    Add check for refcount list.
    They are REFCOUNT_LIST_COUNT, REFCOUNT_LIST_USED,
    REFCOUNT_CLUSTER_RANGE and REFCOUNT_CLUSTER_COLLISION.
    
    Please note that to check whether the refcounted cluster
    has some collision, we need a new parameter "c_end" which
    indicates the end of the refcount record we have checked
    before.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 57c2e791ef6e5c8981936246ecb785abb4a90fb7
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    fsck.ocfs2: Add basic check for refcount block.
    
    Add basic check for refcount block.
    They are RB_BLKNO, RB_GEN and RB_GEN_FIX.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 978e49fc4e7df6a0320ab143b6528a2fcebe8677
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    fsck.ocfs2: Clear REFCOUNTED flag if the file doesn't support it.
    
    If an extent record has the REFCOUNTED flag set, but neither the filesystem
    nor the file has the REFCOUNTED flag set, we should clear it.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 6ba3950d03057c968f0fdf59661732e3d05fe3da
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:02 2010 +0800

    fsck.ocfs2: Generic ocfs2_extent_rec check.
    
    unwritten extents actually only exists in the extent tree
    for the inode, but we check it for every tree types. And
    as for blkno alignment check, refcount tree doesn't need
    this type of check.
    
    This patch add a check_leaf_rec_func in extent_info so that the
    caller of check_el can initialize it to do its own check for
    the leaf ocfs2_extent_rec.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 2ef17e968a6993417a5835c4e999897ffe76a394
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:04 2010 +0800

    fsck.ocfs2: Make extent list check prompt more generic.
    
    Now extent list is used more frequently than before and
    more and more ocfs2 disk layouts use extent list to
    store their data(xattr, refcount etc).
    
    So we'd better make the check of extent list more generic.
    This patch removes the old usage of "inode" and di->i_blkno.
    We pass an owner instead like we do in the kernel.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 4fdce42fe84d5a7d40616ef56dd1f237f56ed457
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    fsck.ocfs2: Add REFCOUNT_LOC_INVALID.
    
    Refcount loc can only be valid if the file has refcount flag
    set. So if fsck.ocfs2 has found that a file has refcount loc
    while it does't have refcount flag set, fsck will reset
    i_refcount_loc to 0.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 94dcb156f5c8ab3ca5a5cb59d59f3b2b7b94e483
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    fsck.ocfs2: Add REFCOUNT_FLAG_INVALID.
    
    Refcount file can only exist in a volume with refcount supported,
    So if fsck.ocfs2 finds that a file in a non-refcount volume has
    refcount flag set, just try to remove it.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 97139486f983cc4bdb2b08e8eb753d47c8791b63
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:11 2010 +0800

    libocfs2: Add function for changing refcount flag.
    
    In fsck.ocfs2, we need the ability to clear/set refcount
    flag for some exetent record. So this function adds
    a new function named ocfs2_change_refcount_flag.
    
    Note:
    It only have the parameter tuple(v_cpos, p_cpos, clusters),
    so we have to iterate dinode and xattr to find the dest
    extent tree we want to change.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 02819180ea513c55ab4dce2f0b8672b3cf712047
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:04 2010 +0800

    libocfs2: Add function for punch hole in refcount tree.
    
    In fsck.ocfs2, sometimes we need to remove the refcount
    from the tree, so this patch add a new function named
    ocfs2_refcount_punch_hole which will do like this.
    
    We add a new parameter value to ocfs2_decrease_refcount_rec,
    so that in case of punching hole, we just need to set
    value to -r_refcount and it will work for us.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit c1eed256197e387d33af514ddbeac8cb160980c5
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    tunefs.ocfs2: Add disable refcount for xattr.
    
    Add functions for CoW xattrs.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 41beedc66bf8a0381937e5003a39b6b070a39cdc
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    libocfs2: Add xattr CoW.
    
    Add xattr CoW.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 5d986f236b1107f860c85afed63fc600eb8d686a
Author: Tiger Yang <tiger.yang at oracle.com>
Date:   Tue Jan 26 09:10:10 2010 +0800

    libocfs2: Add xattr value tree type.
    
    This patch adds xattr value extent tree type.
    
    Note from Tao Ma:
    The original form is from
    http://oss.oracle.com/pipermail/ocfs2-tools-devel/2009-October/002279.html.
    I just copied the value tree here and I also changed the
    prototype for value_tree init. We have to pass xattr write
    function to the tree since the xattr value can be in inode,
    block or bucket.
    
    Signed-off-by: Tiger Yang <tiger.yang at oracle.com>
    Signed-off-by: Tao Ma <tao.ma at oracle.com>

commit ac633aec2415667f7d396ab0eda0797d6b99477b
Author: Tiger Yang <tiger.yang at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    libocfs2: add ocfs2_xattr_get_clusters
    
    This function use to get the starting cluster number
    of a specified offset in an xattr extent tree.
    
    Signed-off-by: Tiger Yang <tiger.yang at oracle.com>
    Signed-off-by: Tao Ma <tao.ma at oracle.com>

commit 2f898f01a5d7a5ff40a5155fa7f86f0361561953
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    libocfs2: Add xattr iteration process.
    
    In some other tools(tunefs.ocfs2 and fsck.ocfs2), we need
    to iterate xattr many times, so we'd better have an iteration
    process for xattr.
    
    I have taken some reference from Tiger's intial draft.
    http://oss.oracle.com/pipermail/ocfs2-tools-devel/2009-October/002282.html
    Thank tiger for it.
    It has changed a lot in this version.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 2bc743304531133b238984c40a4842f39cca3e54
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    tunefs.ocfs2: Add refcount feature disable/enable.
    
    The enable part is very simple.
    As to disable refcount feature, it will use ocfs2_refcount_cow
    to CoW the refcounted clusters.
    This patch only for the inode extents, the xattr part will be
    implemented in the later patch.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 6887dc99deebcab975e5cb1ef58952d5f1587696
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Jan 26 09:10:02 2010 +0800

    debugfs.ocfs2: Dump refcount trees
    
    debugfs.ocfs2 gains the 'refcount' command.  This will dump a refcount
    tree including its extents.  If passed an inode specification, it will
    dump the refcount tree associated with that inode.  If it is passed the
    refcount block directly (surrounded by angle brackets, of course), it
    will just read the refcount block.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>
    Signed-off-by: Tao Ma <tao.ma at oracle.com>

commit fc29f9425468d6a4198c4b1d03966a7c5226ed8d
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    libocfs2: Add the 'refcount' feature to the feature definitions.
    
    Add refcount trees to the selectable and printable feature definitions.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>
    Signed-off-by: Tao Ma <tao.ma at oracle.com>

commit dbcdec122f808f5b123794a93ac9c7f51c5ea143
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    liboocfs2: CoW a reflinked cluster when it is truncated.
    
    When we truncate a file to a specific size which resides in a reflinked
    cluster, we need to CoW it since we need to empty the spaces after
    new_i_size.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 62ae31fb25200a2a40231078f8b9623dd08913c0
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:05 2010 +0800

    ocfs2: Integrate CoW in file write.
    
    Call ocfs2_refcount_cow first to CoW refcounted clusters
    in ocfs2_file_block_write.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 89a458b295ab7609efab4af02a93e1f27e0d7173
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    libocfs2: Add CoW support.
    
    This patch try CoW support for a refcounted record.
    
    the whole process will be:
    1. Calculate how many clusters we need to CoW and where we start.
       Extents that are not completely encompassed by the write will
       be broken on 1MB boundaries.
    2. Do CoW for the clusters.
    3. Change the b-tree structure with the new allocated clusters.
    
    If the old extent has refcount=1, just remove the refcounted flag
    and it is OK.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 285daee909d170e60e4721f72dd331cc0cf43614
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:02 2010 +0800

    ocfs2: Decrement refcount when truncating refcounted extents.
    
    Add 'Decrement refcount for delete' in to the normal truncate
    process. So for a refcounted extent record, call refcount rec
    decrementation instead of cluster free.
    
    Note:
    Some xattr truncate functions have to be changed to pass
    inode number into truncate so that we can find the proper
    refcount tree.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 6555aad14803eb66906ce126e97101582d42797a
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    libocfs2: Add support of decrementing refcount for delete.
    
    Given a physical cpos and length, decrement the refcount
    in the tree. If the refcount for any portion of the extent goes
    to zero, that portion is queued for freeing.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit a80abee9da601e83b1c8a022c2e69025cc23b5e4
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:11 2010 +0800

    libocfs2: Add support for incrementing refcount in the tree.
    
    Given a physical cpos and length, increment the refcount
    in the tree. If the extent has not been seen before, a refcount
    record is created for it. Refcount records may be merged or
    split by this operation.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 1b72e132dabb50a3c2e6ca54809c98fc0206d118
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:04 2010 +0800

    libocfs2: Add refcount tree in extent_tree.c
    
    refcount tree is also one extent tree, so and the initialization
    for it.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 8391aa50440ecaae6c43ca7a9d152b0324943c95
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    libocfs2: Wrap ocfs2_extent_contig in ocfs2_extent_tree.
    
    Add a new operation eo_ocfs2_extent_contig into the extent tree's
    operation vector. We want this so that refcount tree can always
    return CONTIG_NONE and prevent extent merging.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 2b1c540a1e8a1e15f88906d1a5e51f556fb154a6
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    libocfs2: export tree path functions to extent_tree.h
    
    Although we have already make our b-tree operation generic,
    the basic structrue ocfs2_path which is used to iterate one
    b-tree branch is still static and limited to only used in
    extent_tree.c. As refcount tree need them, export them out.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 03946ce0da947771434d1d3337a12203d7cb2ab4
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    libocfs2: Add ocfs2_new_refcount_block()
    
    The corresponding create function.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 9cdb184ffdc5e0ea18426037f1b93a9e5ba41a49
Author: Tao Ma <tao.ma at oracle.com>
Date:   Tue Jan 26 09:10:09 2010 +0800

    libocfs2: Add ocfs2_delete_refcount_block()
    
    The corresponding delete function.
    
    Signed-off-by: Tao Ma <tao.ma at oracle.com>
    Signed-off-by: Joel Becker <joel.becker at oracle.com>

commit 4ced4bd46e0e202d4d6cb834e206203531a19295
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    libocfs2: Add ocfs2_write_refcount_block()
    
    The corresponding write function.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>
    Signed-off-by: Tao Ma <tao.ma at oracle.com>

commit 3a81c0f592aefeeeeaf7630f70b250de869c7955
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Jan 26 09:10:06 2010 +0800

    libocfs2: Add ocfs2_read_refcount_block().
    
    The extent list swap code learns about leaf extent records for refcount
    trees, and we now can read refcount blocks.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>
    Signed-off-by: Tao Ma <tao.ma at oracle.com>

commit 2a27f9fa327ef2786c6bade03a441f117a6bbe07
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Jan 26 09:10:02 2010 +0800

    libocfs2: Swap i_refcount_loc.
    
    Add Swap for i_refcount_loc.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>
    Signed-off-by: Tao Ma <tao.ma at oracle.com>

commit dc4b93e1be2d48f725049d41177c2e894f0e8adf
Author: Joel Becker <joel.becker at oracle.com>
Date:   Tue Jan 26 09:10:07 2010 +0800

    ocfs2-tools: Add disk layout for refcount trees.
    
    Add disk layout for refcount trees.
    
    Signed-off-by: Joel Becker <joel.becker at oracle.com>
    Signed-off-by: Tao Ma <tao.ma at oracle.com>

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

Summary of changes:
 debugfs.ocfs2/commands.c                           |  142 ++
 debugfs.ocfs2/dump.c                               |   65 +-
 debugfs.ocfs2/include/dump.h                       |    2 +
 fsck.ocfs2/Makefile                                |    2 +
 fsck.ocfs2/extent.c                                |  217 ++-
 fsck.ocfs2/fsck.c                                  |    1 +
 fsck.ocfs2/fsck.ocfs2.checks.8.in                  |  136 ++
 fsck.ocfs2/include/extent.h                        |   40 +-
 fsck.ocfs2/include/fsck.h                          |    5 +
 fsck.ocfs2/include/{pass5.h => refcount.h}         |   21 +-
 fsck.ocfs2/pass1.c                                 |   28 +
 fsck.ocfs2/pass1b.c                                |  176 ++-
 fsck.ocfs2/refcount.c                              | 1094 +++++++++
 fsck.ocfs2/xattr.c                                 |   20 +-
 fswreck/Makefile                                   |    5 +-
 fswreck/corrupt.c                                  |   46 +
 fswreck/extent.c                                   |   12 +
 fswreck/include/corrupt.h                          |    1 +
 fswreck/include/fsck_type.h                        |   28 +
 fswreck/include/main.h                             |    1 +
 .../include/pass1b.h => fswreck/include/refcount.h |   19 +-
 fswreck/inode.c                                    |   21 +-
 fswreck/main.c                                     |   39 +
 fswreck/refcount.c                                 |  407 ++++
 include/ocfs2-kernel/ocfs2_fs.h                    |  136 ++-
 include/ocfs2/ocfs2.h                              |   90 +-
 libocfs2/Makefile                                  |    7 +-
 libocfs2/alloc.c                                   |   90 +
 libocfs2/extent_map.c                              |   62 +
 libocfs2/extent_tree.c                             |  199 ++-
 libocfs2/extent_tree.h                             |   60 +-
 libocfs2/feature_string.c                          |  187 ++-
 libocfs2/fileio.c                                  |   12 +
 libocfs2/inode.c                                   |    1 +
 libocfs2/refcount.c                                | 2324 ++++++++++++++++++++
 libocfs2/refcount.h                                |   34 +
 libocfs2/truncate.c                                |   50 +-
 libocfs2/xattr.c                                   |  219 ++
 tunefs.ocfs2/Makefile                              |    1 +
 tunefs.ocfs2/feature_refcount.c                    |  584 +++++
 tunefs.ocfs2/feature_xattr.c                       |   17 +-
 tunefs.ocfs2/op_features.c                         |    2 +
 42 files changed, 6395 insertions(+), 208 deletions(-)
 copy fsck.ocfs2/include/{pass5.h => refcount.h} (52%)
 create mode 100644 fsck.ocfs2/refcount.c
 copy fsck.ocfs2/include/pass1b.h => fswreck/include/refcount.h (59%)
 create mode 100644 fswreck/refcount.c
 create mode 100644 libocfs2/refcount.c
 create mode 100644 libocfs2/refcount.h
 create mode 100644 tunefs.ocfs2/feature_refcount.c


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



More information about the Ocfs2-tools-commits mailing list