• Miao Xie's avatar
    Btrfs: fix the confusion between delalloc bytes and metadata bytes · c61a16a7
    Miao Xie authored
    In shrink_delalloc(), what we need reclaim is the metadata space, so
    flushing pages by to_reclaim is not reasonable, it is very likely that
    the pages we flush are not enough. And then we had to invoke the flush
    function for several times, at the worst, we need call flush_space for
    several times. It wasted time.
    
    We improve this problem by converting the metadata space size we need
    reserve to the delalloc bytes, By this way, we can flush the pages
    by a reasonable number.
    
    (Now we use a fixed number to do conversion, it is not flexible, maybe
     we can find a good way to improve it in the future.)
    Signed-off-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
    Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
    Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
    c61a16a7
extent-tree.c 238 KB