Commit ef2fff64 authored by David Sterba's avatar David Sterba Committed by David Sterba
Browse files

btrfs: rename helper macros for qgroup and aux data casts



The helpers are not meant to be generic, the name is misleading. Convert
them to static inlines for type checking.

Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 5d9dbe61
Loading
Loading
Loading
Loading
+21 −14
Original line number Original line Diff line number Diff line
@@ -131,8 +131,15 @@ struct btrfs_qgroup_list {
	struct btrfs_qgroup *member;
	struct btrfs_qgroup *member;
};
};


#define ptr_to_u64(x) ((u64)(uintptr_t)x)
static inline u64 qgroup_to_aux(struct btrfs_qgroup *qg)
#define u64_to_ptr(x) ((struct btrfs_qgroup *)(uintptr_t)x)
{
	return (u64)(uintptr_t)qg;
}

static inline struct btrfs_qgroup* unode_aux_to_qgroup(struct ulist_node *n)
{
	return (struct btrfs_qgroup *)(uintptr_t)n->aux;
}


static int
static int
qgroup_rescan_init(struct btrfs_fs_info *fs_info, u64 progress_objectid,
qgroup_rescan_init(struct btrfs_fs_info *fs_info, u64 progress_objectid,
@@ -1066,7 +1073,7 @@ static int __qgroup_excl_accounting(struct btrfs_fs_info *fs_info,
	/* Get all of the parent groups that contain this qgroup */
	/* Get all of the parent groups that contain this qgroup */
	list_for_each_entry(glist, &qgroup->groups, next_group) {
	list_for_each_entry(glist, &qgroup->groups, next_group) {
		ret = ulist_add(tmp, glist->group->qgroupid,
		ret = ulist_add(tmp, glist->group->qgroupid,
				ptr_to_u64(glist->group), GFP_ATOMIC);
				qgroup_to_aux(glist->group), GFP_ATOMIC);
		if (ret < 0)
		if (ret < 0)
			goto out;
			goto out;
	}
	}
@@ -1074,7 +1081,7 @@ static int __qgroup_excl_accounting(struct btrfs_fs_info *fs_info,
	/* Iterate all of the parents and adjust their reference counts */
	/* Iterate all of the parents and adjust their reference counts */
	ULIST_ITER_INIT(&uiter);
	ULIST_ITER_INIT(&uiter);
	while ((unode = ulist_next(tmp, &uiter))) {
	while ((unode = ulist_next(tmp, &uiter))) {
		qgroup = u64_to_ptr(unode->aux);
		qgroup = unode_aux_to_qgroup(unode);
		qgroup->rfer += sign * num_bytes;
		qgroup->rfer += sign * num_bytes;
		qgroup->rfer_cmpr += sign * num_bytes;
		qgroup->rfer_cmpr += sign * num_bytes;
		WARN_ON(sign < 0 && qgroup->excl < num_bytes);
		WARN_ON(sign < 0 && qgroup->excl < num_bytes);
@@ -1087,7 +1094,7 @@ static int __qgroup_excl_accounting(struct btrfs_fs_info *fs_info,
		/* Add any parents of the parents */
		/* Add any parents of the parents */
		list_for_each_entry(glist, &qgroup->groups, next_group) {
		list_for_each_entry(glist, &qgroup->groups, next_group) {
			ret = ulist_add(tmp, glist->group->qgroupid,
			ret = ulist_add(tmp, glist->group->qgroupid,
					ptr_to_u64(glist->group), GFP_ATOMIC);
					qgroup_to_aux(glist->group), GFP_ATOMIC);
			if (ret < 0)
			if (ret < 0)
				goto out;
				goto out;
		}
		}
@@ -1535,30 +1542,30 @@ static int qgroup_update_refcnt(struct btrfs_fs_info *fs_info,
			continue;
			continue;


		ulist_reinit(tmp);
		ulist_reinit(tmp);
		ret = ulist_add(qgroups, qg->qgroupid, ptr_to_u64(qg),
		ret = ulist_add(qgroups, qg->qgroupid, qgroup_to_aux(qg),
				GFP_ATOMIC);
				GFP_ATOMIC);
		if (ret < 0)
		if (ret < 0)
			return ret;
			return ret;
		ret = ulist_add(tmp, qg->qgroupid, ptr_to_u64(qg), GFP_ATOMIC);
		ret = ulist_add(tmp, qg->qgroupid, qgroup_to_aux(qg), GFP_ATOMIC);
		if (ret < 0)
		if (ret < 0)
			return ret;
			return ret;
		ULIST_ITER_INIT(&tmp_uiter);
		ULIST_ITER_INIT(&tmp_uiter);
		while ((tmp_unode = ulist_next(tmp, &tmp_uiter))) {
		while ((tmp_unode = ulist_next(tmp, &tmp_uiter))) {
			struct btrfs_qgroup_list *glist;
			struct btrfs_qgroup_list *glist;


			qg = u64_to_ptr(tmp_unode->aux);
			qg = unode_aux_to_qgroup(tmp_unode);
			if (update_old)
			if (update_old)
				btrfs_qgroup_update_old_refcnt(qg, seq, 1);
				btrfs_qgroup_update_old_refcnt(qg, seq, 1);
			else
			else
				btrfs_qgroup_update_new_refcnt(qg, seq, 1);
				btrfs_qgroup_update_new_refcnt(qg, seq, 1);
			list_for_each_entry(glist, &qg->groups, next_group) {
			list_for_each_entry(glist, &qg->groups, next_group) {
				ret = ulist_add(qgroups, glist->group->qgroupid,
				ret = ulist_add(qgroups, glist->group->qgroupid,
						ptr_to_u64(glist->group),
						qgroup_to_aux(glist->group),
						GFP_ATOMIC);
						GFP_ATOMIC);
				if (ret < 0)
				if (ret < 0)
					return ret;
					return ret;
				ret = ulist_add(tmp, glist->group->qgroupid,
				ret = ulist_add(tmp, glist->group->qgroupid,
						ptr_to_u64(glist->group),
						qgroup_to_aux(glist->group),
						GFP_ATOMIC);
						GFP_ATOMIC);
				if (ret < 0)
				if (ret < 0)
					return ret;
					return ret;
@@ -1619,7 +1626,7 @@ static int qgroup_update_counters(struct btrfs_fs_info *fs_info,
	while ((unode = ulist_next(qgroups, &uiter))) {
	while ((unode = ulist_next(qgroups, &uiter))) {
		bool dirty = false;
		bool dirty = false;


		qg = u64_to_ptr(unode->aux);
		qg = unode_aux_to_qgroup(unode);
		cur_old_count = btrfs_qgroup_get_old_refcnt(qg, seq);
		cur_old_count = btrfs_qgroup_get_old_refcnt(qg, seq);
		cur_new_count = btrfs_qgroup_get_new_refcnt(qg, seq);
		cur_new_count = btrfs_qgroup_get_new_refcnt(qg, seq);


@@ -2125,7 +2132,7 @@ static int qgroup_reserve(struct btrfs_root *root, u64 num_bytes)
		struct btrfs_qgroup *qg;
		struct btrfs_qgroup *qg;
		struct btrfs_qgroup_list *glist;
		struct btrfs_qgroup_list *glist;


		qg = u64_to_ptr(unode->aux);
		qg = unode_aux_to_qgroup(unode);


		if ((qg->lim_flags & BTRFS_QGROUP_LIMIT_MAX_RFER) &&
		if ((qg->lim_flags & BTRFS_QGROUP_LIMIT_MAX_RFER) &&
		    qg->reserved + (s64)qg->rfer + num_bytes >
		    qg->reserved + (s64)qg->rfer + num_bytes >
@@ -2157,7 +2164,7 @@ static int qgroup_reserve(struct btrfs_root *root, u64 num_bytes)
	while ((unode = ulist_next(fs_info->qgroup_ulist, &uiter))) {
	while ((unode = ulist_next(fs_info->qgroup_ulist, &uiter))) {
		struct btrfs_qgroup *qg;
		struct btrfs_qgroup *qg;


		qg = u64_to_ptr(unode->aux);
		qg = unode_aux_to_qgroup(unode);


		qg->reserved += num_bytes;
		qg->reserved += num_bytes;
	}
	}
@@ -2202,7 +2209,7 @@ void btrfs_qgroup_free_refroot(struct btrfs_fs_info *fs_info,
		struct btrfs_qgroup *qg;
		struct btrfs_qgroup *qg;
		struct btrfs_qgroup_list *glist;
		struct btrfs_qgroup_list *glist;


		qg = u64_to_ptr(unode->aux);
		qg = unode_aux_to_qgroup(unode);


		qg->reserved -= num_bytes;
		qg->reserved -= num_bytes;