[PATCH v2 11/12] btrfs: add assert to search functions

Stefan Roesch
2022-09-08T00:27:01Z

This adds warnings to search functions, which should not have the nowait
flag set when called.

Signed-off-by: Stefan Roesch <shr@fb.com>
---
fs/btrfs/ctree.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 71b238364939..9caf0f87cbcb 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -2165,6 +2165,9 @@ int btrfs_search_old_slot(struct btrfs_root *root, const struct btrfs_key *key,
lowest_level = p->lowest_level;
WARN_ON(p->nodes[0] != NULL);

+ if (WARN_ON_ONCE(p->nowait == 1))
+ return -EINVAL;
+
if (p->search_commit_root) {
BUG_ON(time_seq);
return btrfs_search_slot(NULL, root, key, p, 0, 0);
@@ -4465,6 +4468,9 @@ int btrfs_search_forward(struct btrfs_root *root, struct btrfs_key *min_key,
int ret = 1;
int keep_locks = path->keep_locks;

+ if (WARN_ON_ONCE(path->nowait == 1))
+ return -EINVAL;
+
path->keep_locks = 1;
again:
cur = btrfs_read_lock_root_node(root);
@@ -4645,6 +4651,9 @@ int btrfs_next_old_leaf(struct btrfs_root *root, struct btrfs_path *path,
int ret;
int i;

+ if (WARN_ON_ONCE(path->nowait == 1))
+ return -EINVAL;
+
nritems = btrfs_header_nritems(path->nodes[0]);
if (nritems == 0)
return 1;
--
2.30.2