@@ -2830,6 +2830,8 @@ int btrfs_force_chunk_alloc(struct btrfs_trans_handle *trans,
28302830int btrfs_trim_fs (struct btrfs_root * root , struct fstrim_range * range );
28312831
28322832int btrfs_init_space_info (struct btrfs_fs_info * fs_info );
2833+ int btrfs_delayed_refs_qgroup_accounting (struct btrfs_trans_handle * trans ,
2834+ struct btrfs_fs_info * fs_info );
28332835/* ctree.c */
28342836int btrfs_bin_search (struct extent_buffer * eb , struct btrfs_key * key ,
28352837 int level , int * slot );
@@ -3339,6 +3341,50 @@ void btrfs_reada_detach(void *handle);
33393341int btree_readahead_hook (struct btrfs_root * root , struct extent_buffer * eb ,
33403342 u64 start , int err );
33413343
3344+ /* qgroup.c */
3345+ struct qgroup_update {
3346+ struct list_head list ;
3347+ struct btrfs_delayed_ref_node * node ;
3348+ struct btrfs_delayed_extent_op * extent_op ;
3349+ };
3350+
3351+ int btrfs_quota_enable (struct btrfs_trans_handle * trans ,
3352+ struct btrfs_fs_info * fs_info );
3353+ int btrfs_quota_disable (struct btrfs_trans_handle * trans ,
3354+ struct btrfs_fs_info * fs_info );
3355+ int btrfs_quota_rescan (struct btrfs_fs_info * fs_info );
3356+ int btrfs_add_qgroup_relation (struct btrfs_trans_handle * trans ,
3357+ struct btrfs_fs_info * fs_info , u64 src , u64 dst );
3358+ int btrfs_del_qgroup_relation (struct btrfs_trans_handle * trans ,
3359+ struct btrfs_fs_info * fs_info , u64 src , u64 dst );
3360+ int btrfs_create_qgroup (struct btrfs_trans_handle * trans ,
3361+ struct btrfs_fs_info * fs_info , u64 qgroupid ,
3362+ char * name );
3363+ int btrfs_remove_qgroup (struct btrfs_trans_handle * trans ,
3364+ struct btrfs_fs_info * fs_info , u64 qgroupid );
3365+ int btrfs_limit_qgroup (struct btrfs_trans_handle * trans ,
3366+ struct btrfs_fs_info * fs_info , u64 qgroupid ,
3367+ struct btrfs_qgroup_limit * limit );
3368+ int btrfs_read_qgroup_config (struct btrfs_fs_info * fs_info );
3369+ void btrfs_free_qgroup_config (struct btrfs_fs_info * fs_info );
3370+ struct btrfs_delayed_extent_op ;
3371+ int btrfs_qgroup_record_ref (struct btrfs_trans_handle * trans ,
3372+ struct btrfs_delayed_ref_node * node ,
3373+ struct btrfs_delayed_extent_op * extent_op );
3374+ int btrfs_qgroup_account_ref (struct btrfs_trans_handle * trans ,
3375+ struct btrfs_fs_info * fs_info ,
3376+ struct btrfs_delayed_ref_node * node ,
3377+ struct btrfs_delayed_extent_op * extent_op );
3378+ int btrfs_run_qgroups (struct btrfs_trans_handle * trans ,
3379+ struct btrfs_fs_info * fs_info );
3380+ int btrfs_qgroup_inherit (struct btrfs_trans_handle * trans ,
3381+ struct btrfs_fs_info * fs_info , u64 srcid , u64 objectid ,
3382+ struct btrfs_qgroup_inherit * inherit );
3383+ int btrfs_qgroup_reserve (struct btrfs_root * root , u64 num_bytes );
3384+ void btrfs_qgroup_free (struct btrfs_root * root , u64 num_bytes );
3385+
3386+ void assert_qgroups_uptodate (struct btrfs_trans_handle * trans );
3387+
33423388static inline int is_fstree (u64 rootid )
33433389{
33443390 if (rootid == BTRFS_FS_TREE_OBJECTID ||
0 commit comments