Skip to content

Commit def100d

Browse files
authored
Merge pull request torvalds#113 from yshui/master
Blind fix for torvalds#111
2 parents 8b23a1b + 9d5b00e commit def100d

File tree

4 files changed

+11
-10
lines changed

4 files changed

+11
-10
lines changed

Diff for: fs/bcachefs/fs-io.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,7 @@ static void bchfs_read(struct btree_trans *trans, struct btree_iter *iter,
845845
sectors = k.k->size - offset_into_extent;
846846

847847
ret = bch2_read_indirect_extent(trans,
848-
&offset_into_extent, sk.k);
848+
&offset_into_extent, &sk);
849849
if (ret)
850850
break;
851851

Diff for: fs/bcachefs/fs.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -889,7 +889,7 @@ static int bch2_fiemap(struct inode *vinode, struct fiemap_extent_info *info,
889889
sectors = k.k->size - offset_into_extent;
890890

891891
ret = bch2_read_indirect_extent(&trans,
892-
&offset_into_extent, cur.k);
892+
&offset_into_extent, &cur);
893893
if (ret)
894894
break;
895895

Diff for: fs/bcachefs/io.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -1641,7 +1641,7 @@ static void bch2_read_retry(struct bch_fs *c, struct bch_read_bio *rbio,
16411641
sectors = k.k->size - offset_into_extent;
16421642

16431643
ret = bch2_read_indirect_extent(&trans,
1644-
&offset_into_extent, sk.k);
1644+
&offset_into_extent, &sk);
16451645
if (ret)
16461646
break;
16471647

@@ -1943,14 +1943,14 @@ static void bch2_read_endio(struct bio *bio)
19431943

19441944
int __bch2_read_indirect_extent(struct btree_trans *trans,
19451945
unsigned *offset_into_extent,
1946-
struct bkey_i *orig_k)
1946+
struct bkey_on_stack *orig_k)
19471947
{
19481948
struct btree_iter *iter;
19491949
struct bkey_s_c k;
19501950
u64 reflink_offset;
19511951
int ret;
19521952

1953-
reflink_offset = le64_to_cpu(bkey_i_to_reflink_p(orig_k)->v.idx) +
1953+
reflink_offset = le64_to_cpu(bkey_i_to_reflink_p(orig_k->k)->v.idx) +
19541954
*offset_into_extent;
19551955

19561956
iter = bch2_trans_get_iter(trans, BTREE_ID_REFLINK,
@@ -1973,7 +1973,7 @@ int __bch2_read_indirect_extent(struct btree_trans *trans,
19731973
}
19741974

19751975
*offset_into_extent = iter->pos.offset - bkey_start_offset(k.k);
1976-
bkey_reassemble(orig_k, k);
1976+
bkey_on_stack_reassemble(orig_k, trans->c, k);
19771977
err:
19781978
bch2_trans_iter_put(trans, iter);
19791979
return ret;
@@ -2273,7 +2273,7 @@ void bch2_read(struct bch_fs *c, struct bch_read_bio *rbio, u64 inode)
22732273
k = bkey_i_to_s_c(sk.k);
22742274

22752275
ret = bch2_read_indirect_extent(&trans,
2276-
&offset_into_extent, sk.k);
2276+
&offset_into_extent, &sk);
22772277
if (ret)
22782278
goto err;
22792279

Diff for: fs/bcachefs/io.h

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#define _BCACHEFS_IO_H
44

55
#include "checksum.h"
6+
#include "bkey_on_stack.h"
67
#include "io_types.h"
78

89
#define to_wbio(_bio) \
@@ -110,13 +111,13 @@ struct cache_promote_op;
110111
struct extent_ptr_decoded;
111112

112113
int __bch2_read_indirect_extent(struct btree_trans *, unsigned *,
113-
struct bkey_i *);
114+
struct bkey_on_stack *);
114115

115116
static inline int bch2_read_indirect_extent(struct btree_trans *trans,
116117
unsigned *offset_into_extent,
117-
struct bkey_i *k)
118+
struct bkey_on_stack *k)
118119
{
119-
return k->k.type == KEY_TYPE_reflink_p
120+
return k->k->k.type == KEY_TYPE_reflink_p
120121
? __bch2_read_indirect_extent(trans, offset_into_extent, k)
121122
: 0;
122123
}

0 commit comments

Comments
 (0)