diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-08-04 10:51:02 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-08-14 12:28:40 -0400 |
commit | 50839b168f169c005d92c9b8779b50d5de412e4b (patch) | |
tree | 9b2b8381a8e744134950ad529666f4efb609d0a0 /fs/bcachefs | |
parent | c1c05be01800a83e407122b1727c2a8bf74d33b8 (diff) |
bcachefs: Fix for bch2_copygc() spuriously returning -EEXIST
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs')
-rw-r--r-- | fs/bcachefs/movinggc.c | 4 |
1 files changed, 3 insertions, 1 deletions
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; |