From ab9ff73322aad5cf6ea774047e47ef724077399b Mon Sep 17 00:00:00 2001
From: Kent Overstreet <kent.overstreet@gmail.com>
Date: Wed, 2 Oct 2019 00:29:37 -0400
Subject: [PATCH] bcachefs: Fix an error path

It's possible to get -EIO in __btree_iter_traverse_all() after looping,
with orig_iter NULL.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
---
 fs/bcachefs/btree_iter.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c
index 8e9164aee4093..78bc82c7b9c33 100644
--- a/fs/bcachefs/btree_iter.c
+++ b/fs/bcachefs/btree_iter.c
@@ -1010,8 +1010,11 @@ retry_all:
 
 	if (unlikely(ret == -EIO)) {
 		trans->error = true;
-		orig_iter->flags |= BTREE_ITER_ERROR;
-		orig_iter->l[orig_iter->level].b = BTREE_ITER_NO_NODE_ERROR;
+		if (orig_iter) {
+			orig_iter->flags |= BTREE_ITER_ERROR;
+			orig_iter->l[orig_iter->level].b =
+				BTREE_ITER_NO_NODE_ERROR;
+		}
 		goto out;
 	}
 
-- 
2.30.2