From f6e6f42bbbe5e421b57182bb0c92a237701ca889 Mon Sep 17 00:00:00 2001
From: Kent Overstreet <kent.overstreet@linux.dev>
Date: Fri, 4 Aug 2023 10:51:02 -0400
Subject: bcachefs: Fix for bch2_copygc() spuriously returning -EEXIST

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
---
 fs/bcachefs/movinggc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

(limited to 'fs/bcachefs/movinggc.c')

diff --git a/fs/bcachefs/movinggc.c b/fs/bcachefs/movinggc.c
index 5242f20bb680..256431a6dc0c 100644
--- a/fs/bcachefs/movinggc.c
+++ b/fs/bcachefs/movinggc.c
@@ -220,8 +220,10 @@ static int bch2_copygc(struct btree_trans *trans,
 
 		f = move_bucket_in_flight_add(buckets_in_flight, *i);
 		ret = PTR_ERR_OR_ZERO(f);
-		if (ret == -EEXIST) /* rare race: copygc_get_buckets returned same bucket more than once */
+		if (ret == -EEXIST) { /* rare race: copygc_get_buckets returned same bucket more than once */
+			ret = 0;
 			continue;
+		}
 		if (ret == -ENOMEM) { /* flush IO, continue later */
 			ret = 0;
 			break;
-- 
cgit v1.2.3