• Qu Wenruo's avatar
    btrfs: qgroup: Refactor btrfs_qgroup_insert_dirty_extent() · cb93b52c
    Qu Wenruo authored
    Refactor btrfs_qgroup_insert_dirty_extent() function, to two functions:
    1. btrfs_qgroup_insert_dirty_extent_nolock()
       Almost the same with original code.
       For delayed_ref usage, which has delayed refs locked.
    
       Change the return value type to int, since caller never needs the
       pointer, but only needs to know if they need to free the allocated
       memory.
    
    2. btrfs_qgroup_insert_dirty_extent()
       The more encapsulated version.
    
       Will do the delayed_refs lock, memory allocation, quota enabled check
       and other things.
    
    The original design is to keep exported functions to minimal, but since
    more btrfs hacks exposed, like replacing path in balance, we need to
    record dirty extents manually, so we have to add such functions.
    
    Also, add comment for both functions, to info developers how to keep
    qgroup correct when doing hacks.
    
    Cc: Mark Fasheh <mfasheh@suse.de>
    Signed-off-by: default avatarQu Wenruo <quwenruo@cn.fujitsu.com>
    Reviewed-and-Tested-by: default avatarGoldwyn Rodrigues <rgoldwyn@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarChris Mason <clm@fb.com>
    cb93b52c
qgroup.c 67.6 KB