]> git.sesse.net Git - bcachefs-tools-debian/commitdiff
Update bcachefs sources to fd381c355c bcachefs: Fix a null ptr deref in fsck check_ex...
authorKent Overstreet <kent.overstreet@linux.dev>
Mon, 17 Apr 2023 01:50:37 +0000 (21:50 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 17 Apr 2023 01:50:37 +0000 (21:50 -0400)
.bcachefs_revision
libbcachefs/error.c
libbcachefs/fsck.c

index 02a8395071bf892a102ef46b27d076b3ea51cb6d..70ac7e011bdf8b46631ba0d70e2273f891bd52c2 100644 (file)
@@ -1 +1 @@
-22ccceee1555cd9a66f0b444634a7c0099a73d77
+fd381c355c92ad0e3abfc49c7675893ed355686f
index b9076fee44082b4a50697e20e49699e62ae58941..aa640284ed1990e575917229ba6340a0546fde08 100644 (file)
@@ -75,6 +75,9 @@ enum ask_yn {
 #ifdef __KERNEL__
 #define bch2_fsck_ask_yn()     YN_NO
 #else
+
+#include "tools-util.h"
+
 enum ask_yn bch2_fsck_ask_yn(void)
 {
        char *buf = NULL;
@@ -106,6 +109,7 @@ enum ask_yn bch2_fsck_ask_yn(void)
        free(buf);
        return ret;
 }
+
 #endif
 
 static struct fsck_err_state *fsck_err_get(struct bch_fs *c, const char *fmt)
index ed2523ac2249cae71605e9b996b459ad544e4fa6..6319f2f7b16f067f17995365a2d69f7fa91f031d 100644 (file)
@@ -3,6 +3,7 @@
 #include "bcachefs.h"
 #include "bkey_buf.h"
 #include "btree_update.h"
+#include "buckets.h"
 #include "darray.h"
 #include "dirent.h"
 #include "error.h"
@@ -1407,6 +1408,7 @@ static int check_extents(struct bch_fs *c)
        struct btree_iter iter;
        struct bkey_s_c k;
        extent_ends extent_ends = { 0 };
+       struct disk_reservation res = { 0 };
        int ret = 0;
 
        snapshots_seen_init(&s);
@@ -1417,10 +1419,13 @@ static int check_extents(struct bch_fs *c)
        ret = for_each_btree_key_commit(&trans, iter, BTREE_ID_extents,
                        POS(BCACHEFS_ROOT_INO, 0),
                        BTREE_ITER_PREFETCH|BTREE_ITER_ALL_SNAPSHOTS, k,
-                       NULL, NULL,
-                       BTREE_INSERT_LAZY_RW|BTREE_INSERT_NOFAIL,
-               check_extent(&trans, &iter, k, &w, &s, &extent_ends));
+                       &res, NULL,
+                       BTREE_INSERT_LAZY_RW|BTREE_INSERT_NOFAIL, ({
+               bch2_disk_reservation_put(c, &res);
+               check_extent(&trans, &iter, k, &w, &s, &extent_ends);
+       }));
 
+       bch2_disk_reservation_put(c, &res);
        extent_ends_reset(&extent_ends);
        darray_exit(&extent_ends);
        inode_walker_exit(&w);