]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
bcachefs: add might_sleep() annotations for fsck_err()
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 7 Jun 2024 20:35:42 +0000 (16:35 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 14 Jul 2024 23:00:12 +0000 (19:00 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/error.c
fs/bcachefs/error.h

index d95c40f1b6af8d43c329e9b1c08e62878d112525..46cd9dcb48fccca56b18f03eab3b5b3d833e5fa8 100644 (file)
@@ -210,6 +210,8 @@ int bch2_fsck_err(struct bch_fs *c,
        int ret = -BCH_ERR_fsck_ignore;
        const char *action_orig = "fix?", *action = action_orig;
 
+       might_sleep();
+
        if (!WARN_ON(err >= ARRAY_SIZE(fsck_flags_extra)))
                flags |= fsck_flags_extra[err];
 
index 777711504c35ceec4058f8be3935da7eec44dd06..ba6a4f5257f43e8edd1a05255394222dc59f7669 100644 (file)
@@ -136,7 +136,10 @@ void bch2_flush_fsck_errs(struct bch_fs *);
 /* XXX: mark in superblock that filesystem contains errors, if we ignore: */
 
 #define __fsck_err_on(cond, c, _flags, _err_type, ...)                 \
-       (unlikely(cond) ? __fsck_err(c, _flags, _err_type, __VA_ARGS__) : false)
+({                                                                     \
+       might_sleep();                                                  \
+       (unlikely(cond) ? __fsck_err(c, _flags, _err_type, __VA_ARGS__) : false);\
+})                                                                     \
 
 #define need_fsck_err_on(cond, c, _err_type, ...)                              \
        __fsck_err_on(cond, c, FSCK_CAN_IGNORE|FSCK_NEED_FSCK, _err_type, __VA_ARGS__)