diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-06-07 16:35:42 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-07-14 19:00:12 -0400 |
commit | e76a2b65b0565f55ea668ec46d54f6a00b8ea9fc (patch) | |
tree | 855f2955d1a3ac852cfef3ea0dd92a791e7ec4c9 /fs | |
parent | 546b65378d0436f55cd6fcbbba890525b77d65f3 (diff) |
bcachefs: add might_sleep() annotations for fsck_err()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/bcachefs/error.c | 2 | ||||
-rw-r--r-- | fs/bcachefs/error.h | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/fs/bcachefs/error.c b/fs/bcachefs/error.c index d95c40f1b6af..46cd9dcb48fc 100644 --- a/fs/bcachefs/error.c +++ b/fs/bcachefs/error.c @@ -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]; diff --git a/fs/bcachefs/error.h b/fs/bcachefs/error.h index 777711504c35..ba6a4f5257f4 100644 --- a/fs/bcachefs/error.h +++ b/fs/bcachefs/error.h @@ -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__) |