• Tao Ma's avatar
    ocfs2: Don't merge in 1st refcount ops of reflink. · 7540c1a7
    Tao Ma authored
    Actually the whole reflink will touch refcount tree 2 times:
    1. It will add the clusters in the extent record to the tree if it
       isn't refcounted before.
    2. It will add 1 refcount to these clusters when it add these
       extent records to the tree.
    
    So actually we shouldn't do merge in the 1st operation since the 2nd
    one will soon be called and we may have to split it again. Do a merge
    first and split soon is a waste of time. So we only merge in the 2nd
    round. This is done by adding a new internal __ocfs2_increase_refcount
    and call it with "not-merge" for 1st refcount operation in reflink.
    
    This also has a side-effect that we don't need to worry too much about
    the metadata allocation in the 2nd round since it will only merge and
    no split will happen for those records.
    Signed-off-by: default avatarTao Ma <tao.ma@oracle.com>
    7540c1a7
refcounttree.c 103 KB