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

Commit 672a8515 authored by Luis de Bethencourt's avatar Luis de Bethencourt
Browse files

befs: remove unused BEFS_BT_PARMATCH



befs_btree_find(), the only caller of befs_find_key(), only cares about if
the return from that function is BEFS_BT_MATCH or not. It never uses the
partial match given with BEFS_BT_PARMATCH. Make the overflow return clearer
by having BEFS_BT_OVERFLOW instead of BEFS_BT_PARMATCH.

Signed-off-by: default avatarLuis de Bethencourt <luisbg@osg.samsung.com>
Signed-off-by: default avatarSalah Triki <salah.triki@gmail.com>
parent 33c712b4
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -79,7 +79,7 @@ enum befs_err {
	BEFS_BT_END,
	BEFS_BT_END,
	BEFS_BT_EMPTY,
	BEFS_BT_EMPTY,
	BEFS_BT_MATCH,
	BEFS_BT_MATCH,
	BEFS_BT_PARMATCH,
	BEFS_BT_OVERFLOW,
	BEFS_BT_NOT_FOUND
	BEFS_BT_NOT_FOUND
};
};


+15 −18
Original line number Original line Diff line number Diff line
@@ -281,9 +281,9 @@ befs_btree_find(struct super_block *sb, const befs_data_stream *ds,


	while (!befs_leafnode(this_node)) {
	while (!befs_leafnode(this_node)) {
		res = befs_find_key(sb, this_node, key, &node_off);
		res = befs_find_key(sb, this_node, key, &node_off);
		if (res == BEFS_BT_NOT_FOUND)
		/* if no key set, try the overflow node */
		if (res == BEFS_BT_OVERFLOW)
			node_off = this_node->head.overflow;
			node_off = this_node->head.overflow;
		/* if no match, go to overflow node */
		if (befs_bt_read_node(sb, ds, this_node, node_off) != BEFS_OK) {
		if (befs_bt_read_node(sb, ds, this_node, node_off) != BEFS_OK) {
			befs_error(sb, "befs_btree_find() failed to read "
			befs_error(sb, "befs_btree_find() failed to read "
				   "node at %llu", node_off);
				   "node at %llu", node_off);
@@ -291,8 +291,7 @@ befs_btree_find(struct super_block *sb, const befs_data_stream *ds,
		}
		}
	}
	}


	/* at the correct leaf node now */
	/* at a leaf node now, check if it is correct */

	res = befs_find_key(sb, this_node, key, value);
	res = befs_find_key(sb, this_node, key, value);


	brelse(this_node->bh);
	brelse(this_node->bh);
@@ -323,16 +322,12 @@ befs_btree_find(struct super_block *sb, const befs_data_stream *ds,
 * @findkey: Keystring to search for
 * @findkey: Keystring to search for
 * @value: If key is found, the value stored with the key is put here
 * @value: If key is found, the value stored with the key is put here
 *
 *
 * finds exact match if one exists, and returns BEFS_BT_MATCH
 * Finds exact match if one exists, and returns BEFS_BT_MATCH.
 * If no exact match, finds first key in node that is greater
 * If there is no match and node's value array is too small for key, return
 * (alphabetically) than the search key and returns BEFS_BT_PARMATCH
 * BEFS_BT_OVERFLOW.
 * (for partial match, I guess). Can you think of something better to
 * If no match and node should countain this key, return BEFS_BT_NOT_FOUND.
 * call it?
 *
 * If no key was a match or greater than the search key, return
 * BEFS_BT_NOT_FOUND.
 *
 *
 * Use binary search instead of a linear.
 * Uses binary search instead of a linear.
 */
 */
static int
static int
befs_find_key(struct super_block *sb, struct befs_btree_node *node,
befs_find_key(struct super_block *sb, struct befs_btree_node *node,
@@ -355,9 +350,8 @@ befs_find_key(struct super_block *sb, struct befs_btree_node *node,


	eq = befs_compare_strings(thiskey, keylen, findkey, findkey_len);
	eq = befs_compare_strings(thiskey, keylen, findkey, findkey_len);
	if (eq < 0) {
	if (eq < 0) {
		befs_error(sb, "<--- %s %s not found", __func__, findkey);
		befs_debug(sb, "<--- node can't contain %s", findkey);
		befs_debug(sb, "<--- %s ERROR", __func__);
		return BEFS_BT_OVERFLOW;
		return BEFS_BT_NOT_FOUND;
	}
	}


	valarray = befs_bt_valarray(node);
	valarray = befs_bt_valarray(node);
@@ -385,12 +379,15 @@ befs_find_key(struct super_block *sb, struct befs_btree_node *node,
		else
		else
			first = mid + 1;
			first = mid + 1;
	}
	}

	/* return an existing value so caller can arrive to a leaf node */
	if (eq < 0)
	if (eq < 0)
		*value = fs64_to_cpu(sb, valarray[mid + 1]);
		*value = fs64_to_cpu(sb, valarray[mid + 1]);
	else
	else
		*value = fs64_to_cpu(sb, valarray[mid]);
		*value = fs64_to_cpu(sb, valarray[mid]);
	befs_debug(sb, "<--- %s found %s at %d", __func__, thiskey, mid);
	befs_error(sb, "<--- %s %s not found", __func__, findkey);
	return BEFS_BT_PARMATCH;
	befs_debug(sb, "<--- %s ERROR", __func__);
	return BEFS_BT_NOT_FOUND;
}
}


/**
/**