diff options
author | Qu Wenruo <quwenruo@cn.fujitsu.com> | 2015-02-27 16:26:33 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2015-03-24 00:07:59 +0100 |
commit | 9922c42701f8a49d3df743a95c4f7a54c84c7452 (patch) | |
tree | 121dd77ff9b992beb0f1f93747b29a9cc2ca656c /ctree.h | |
parent | f18f8b7afc6f4c714ece79bbd56064d012cbbea4 (diff) |
btrfs-progs: Update qgroup status flags and replace qgroup level/subvid calculation with inline function
Ctree.h of btrfs-progs contains wrong flags for btrfs_qgroup_status.
Update it with the one in kernel.
Also, introduce the inline function btrfs_qgroup_(level/subvid) to get
the level/subvolid of qgroup, to replace the old open-coded bit
operations.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Diffstat (limited to 'ctree.h')
-rw-r--r-- | ctree.h | 18 |
1 files changed, 14 insertions, 4 deletions
@@ -868,11 +868,21 @@ struct btrfs_csum_item { */ #define BTRFS_SPACE_INFO_GLOBAL_RSV (1ULL << 49) -#define BTRFS_QGROUP_STATUS_OFF 0 -#define BTRFS_QGROUP_STATUS_ON 1 -#define BTRFS_QGROUP_STATUS_SCANNING 2 +#define BTRFS_QGROUP_LEVEL_SHIFT 48 -#define BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT (1 << 0) +static inline u64 btrfs_qgroup_level(u64 qgroupid) +{ + return qgroupid >> BTRFS_QGROUP_LEVEL_SHIFT; +} + +static inline u64 btrfs_qgroup_subvid(u64 qgroupid) +{ + return qgroupid & ((1ULL << BTRFS_QGROUP_LEVEL_SHIFT) - 1); +} + +#define BTRFS_QGROUP_STATUS_FLAG_ON (1ULL << 0) +#define BTRFS_QGROUP_STATUS_FLAG_RESCAN (1ULL << 1) +#define BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT (1ULL << 2) struct btrfs_qgroup_status_item { __le64 version; |