diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c index 2aaeee585157..310e317738b9 100644 --- a/fs/bcachefs/fs.c +++ b/fs/bcachefs/fs.c @@ -935,7 +935,8 @@ static int bch2_fiemap(struct inode *vinode, struct fiemap_extent_info *info, bch2_trans_iter_init(&trans, &iter, BTREE_ID_extents, SPOS(ei->v.i_ino, start, snapshot), 0); - while ((k = bch2_btree_iter_peek(&iter)).k && + while (!(ret = btree_trans_too_many_iters(&trans)) && + (k = bch2_btree_iter_peek(&iter)).k && !(ret = bkey_err(k)) && bkey_cmp(iter.pos, end) < 0) { enum btree_id data_btree = BTREE_ID_extents;