70 lines
2.4 KiB
Diff
70 lines
2.4 KiB
Diff
From f3542deaa920f10ee70f33bbf435c84e37a33a65 Mon Sep 17 00:00:00 2001
|
|
From: Kent Overstreet <kent.overstreet@linux.dev>
|
|
Date: Sun, 24 Nov 2024 21:49:08 -0500
|
|
Subject: [PATCH 117/213] bcachefs: errcode cleanup: journal errors
|
|
Content-Type: text/plain; charset="utf-8"
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Instead of throwing standard error codes, we should be throwing
|
|
dedicated private error codes, this greatly improves debugability.
|
|
|
|
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
|
Signed-off-by: Alexander Miroshnichenko <alex@millerson.name>
|
|
---
|
|
fs/bcachefs/errcode.h | 2 ++
|
|
fs/bcachefs/journal.c | 4 ++--
|
|
fs/bcachefs/journal.h | 2 +-
|
|
3 files changed, 5 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/fs/bcachefs/errcode.h b/fs/bcachefs/errcode.h
|
|
index 131b9bef21a0..c989ce4f715f 100644
|
|
--- a/fs/bcachefs/errcode.h
|
|
+++ b/fs/bcachefs/errcode.h
|
|
@@ -241,6 +241,8 @@
|
|
x(BCH_ERR_invalid_sb, invalid_sb_downgrade) \
|
|
x(BCH_ERR_invalid, invalid_bkey) \
|
|
x(BCH_ERR_operation_blocked, nocow_lock_blocked) \
|
|
+ x(EIO, journal_shutdown) \
|
|
+ x(EIO, journal_flush_err) \
|
|
x(EIO, btree_node_read_err) \
|
|
x(BCH_ERR_btree_node_read_err, btree_node_read_err_cached) \
|
|
x(EIO, sb_not_downgraded) \
|
|
diff --git a/fs/bcachefs/journal.c b/fs/bcachefs/journal.c
|
|
index 699db0d0749a..bbdd0b17ae69 100644
|
|
--- a/fs/bcachefs/journal.c
|
|
+++ b/fs/bcachefs/journal.c
|
|
@@ -673,7 +673,7 @@ void bch2_journal_entry_res_resize(struct journal *j,
|
|
* @seq: seq to flush
|
|
* @parent: closure object to wait with
|
|
* Returns: 1 if @seq has already been flushed, 0 if @seq is being flushed,
|
|
- * -EIO if @seq will never be flushed
|
|
+ * -BCH_ERR_journal_flush_err if @seq will never be flushed
|
|
*
|
|
* Like bch2_journal_wait_on_seq, except that it triggers a write immediately if
|
|
* necessary
|
|
@@ -696,7 +696,7 @@ int bch2_journal_flush_seq_async(struct journal *j, u64 seq,
|
|
|
|
/* Recheck under lock: */
|
|
if (j->err_seq && seq >= j->err_seq) {
|
|
- ret = -EIO;
|
|
+ ret = -BCH_ERR_journal_flush_err;
|
|
goto out;
|
|
}
|
|
|
|
diff --git a/fs/bcachefs/journal.h b/fs/bcachefs/journal.h
|
|
index 71a50846967f..a6a2e888c59b 100644
|
|
--- a/fs/bcachefs/journal.h
|
|
+++ b/fs/bcachefs/journal.h
|
|
@@ -412,7 +412,7 @@ void bch2_journal_halt(struct journal *);
|
|
static inline int bch2_journal_error(struct journal *j)
|
|
{
|
|
return j->reservations.cur_entry_offset == JOURNAL_ENTRY_ERROR_VAL
|
|
- ? -EIO : 0;
|
|
+ ? -BCH_ERR_journal_shutdown : 0;
|
|
}
|
|
|
|
struct bch_dev;
|
|
--
|
|
2.45.2
|
|
|