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

Commit f58d88b3 authored by Edmund Nadolski's avatar Edmund Nadolski Committed by David Sterba
Browse files

btrfs: provide enumeration for __merge_refs mode argument



Replace hardcoded numeric values for __merge_refs 'mode' argument
with descriptive constants.

Signed-off-by: default avatarEdmund Nadolski <enadolski@suse.com>
Reviewed-by: default avatarJeff Mahoney <jeffm@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent f486135e
Loading
Loading
Loading
Loading
+13 −10
Original line number Diff line number Diff line
@@ -26,6 +26,11 @@
#include "delayed-ref.h"
#include "locking.h"

enum merge_mode {
	MERGE_IDENTICAL_KEYS = 1,
	MERGE_IDENTICAL_PARENTS,
};

/* Just an arbitrary number so we can be sure this happened */
#define BACKREF_FOUND_SHARED 6

@@ -809,14 +814,12 @@ static int __add_missing_keys(struct btrfs_fs_info *fs_info,
/*
 * merge backrefs and adjust counts accordingly
 *
 * mode = 1: merge identical keys, if key is set
 *    FIXME: if we add more keys in __add_prelim_ref, we can merge more here.
 *           additionally, we could even add a key range for the blocks we
 *           looked into to merge even more (-> replace unresolved refs by those
 *           having a parent).
 * mode = 2: merge identical parents
 *    FIXME: For MERGE_IDENTICAL_KEYS, if we add more keys in __add_prelim_ref
 *           then we can merge more here. Additionally, we could even add a key
 *           range for the blocks we looked into to merge even more (-> replace
 *           unresolved refs by those having a parent).
 */
static void __merge_refs(struct list_head *head, int mode)
static void __merge_refs(struct list_head *head, enum merge_mode mode)
{
	struct __prelim_ref *pos1;

@@ -829,7 +832,7 @@ static void __merge_refs(struct list_head *head, int mode)

			if (!ref_for_same_block(ref1, ref2))
				continue;
			if (mode == 1) {
			if (mode == MERGE_IDENTICAL_KEYS) {
				if (!ref1->parent && ref2->parent)
					swap(ref1, ref2);
			} else {
@@ -1374,7 +1377,7 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans,
	if (ret)
		goto out;

	__merge_refs(&prefs, 1);
	__merge_refs(&prefs, MERGE_IDENTICAL_KEYS);

	ret = __resolve_indirect_refs(fs_info, path, time_seq, &prefs,
				      extent_item_pos, total_refs,
@@ -1382,7 +1385,7 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans,
	if (ret)
		goto out;

	__merge_refs(&prefs, 2);
	__merge_refs(&prefs, MERGE_IDENTICAL_PARENTS);

	while (!list_empty(&prefs)) {
		ref = list_first_entry(&prefs, struct __prelim_ref, list);