summaryrefslogtreecommitdiff
path: root/libbcachefs/util.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-08-11 22:22:59 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-08-11 22:25:12 -0400
commitf3976e3733e97a0e96f5fc6349d1e82b25116043 (patch)
tree87ab725ba56735f2157e77dc6bc4bc1c910890b2 /libbcachefs/util.c
parentbcee0320dcb53adb3786330a00a101840f2939d0 (diff)
Update bcachefs sources to b0788c47d9 bcachefs: Fix check_version_upgrade()
Diffstat (limited to 'libbcachefs/util.c')
-rw-r--r--libbcachefs/util.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libbcachefs/util.c b/libbcachefs/util.c
index ae4f6de3..fc834db4 100644
--- a/libbcachefs/util.c
+++ b/libbcachefs/util.c
@@ -216,6 +216,7 @@ u64 bch2_read_flag_list(char *opt, const char * const list[])
while ((p = strsep(&s, ","))) {
int flag = match_string(list, -1, p);
+
if (flag < 0) {
ret = -1;
break;
@@ -797,9 +798,10 @@ void memcpy_to_bio(struct bio *dst, struct bvec_iter dst_iter, const void *src)
struct bvec_iter iter;
__bio_for_each_segment(bv, dst, iter, dst_iter) {
- void *dstp = kmap_atomic(bv.bv_page);
+ void *dstp = kmap_local_page(bv.bv_page);
+
memcpy(dstp + bv.bv_offset, src, bv.bv_len);
- kunmap_atomic(dstp);
+ kunmap_local(dstp);
src += bv.bv_len;
}
@@ -811,9 +813,10 @@ void memcpy_from_bio(void *dst, struct bio *src, struct bvec_iter src_iter)
struct bvec_iter iter;
__bio_for_each_segment(bv, src, iter, src_iter) {
- void *srcp = kmap_atomic(bv.bv_page);
+ void *srcp = kmap_local_page(bv.bv_page);
+
memcpy(dst, srcp + bv.bv_offset, bv.bv_len);
- kunmap_atomic(srcp);
+ kunmap_local(srcp);
dst += bv.bv_len;
}