Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 416ac51d authored by Arne Jansen's avatar Arne Jansen Committed by Jan Schmidt
Browse files

Btrfs: qgroup state and initialization



Add state to fs_info.

Signed-off-by: default avatarArne Jansen <sensille@gmx.net>
parent 20897f5c
Loading
Loading
Loading
Loading
+24 −0
Original line number Original line Diff line number Diff line
@@ -1120,6 +1120,7 @@ struct btrfs_fs_info {
	struct btrfs_root *dev_root;
	struct btrfs_root *dev_root;
	struct btrfs_root *fs_root;
	struct btrfs_root *fs_root;
	struct btrfs_root *csum_root;
	struct btrfs_root *csum_root;
	struct btrfs_root *quota_root;


	/* the log root tree is a directory of all the other log roots */
	/* the log root tree is a directory of all the other log roots */
	struct btrfs_root *log_root_tree;
	struct btrfs_root *log_root_tree;
@@ -1374,6 +1375,29 @@ struct btrfs_fs_info {
#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
	u32 check_integrity_print_mask;
	u32 check_integrity_print_mask;
#endif
#endif
	/*
	 * quota information
	 */
	unsigned int quota_enabled:1;

	/*
	 * quota_enabled only changes state after a commit. This holds the
	 * next state.
	 */
	unsigned int pending_quota_state:1;

	/* is qgroup tracking in a consistent state? */
	u64 qgroup_flags;

	/* holds configuration and tracking. Protected by qgroup_lock */
	struct rb_root qgroup_tree;
	spinlock_t qgroup_lock;

	/* list of dirty qgroups to be written at next commit */
	struct list_head dirty_qgroups;

	/* used by btrfs_qgroup_record_ref for an efficient tree traversal */
	u64 qgroup_seq;


	/* filesystem state */
	/* filesystem state */
	u64 fs_state;
	u64 fs_state;
+7 −0
Original line number Original line Diff line number Diff line
@@ -2110,6 +2110,13 @@ int open_ctree(struct super_block *sb,
	init_rwsem(&fs_info->cleanup_work_sem);
	init_rwsem(&fs_info->cleanup_work_sem);
	init_rwsem(&fs_info->subvol_sem);
	init_rwsem(&fs_info->subvol_sem);


	spin_lock_init(&fs_info->qgroup_lock);
	fs_info->qgroup_tree = RB_ROOT;
	INIT_LIST_HEAD(&fs_info->dirty_qgroups);
	fs_info->qgroup_seq = 1;
	fs_info->quota_enabled = 0;
	fs_info->pending_quota_state = 0;

	btrfs_init_free_cluster(&fs_info->meta_alloc_cluster);
	btrfs_init_free_cluster(&fs_info->meta_alloc_cluster);
	btrfs_init_free_cluster(&fs_info->data_alloc_cluster);
	btrfs_init_free_cluster(&fs_info->data_alloc_cluster);