Instead of throwing standard error codes, we should be throwing
dedicated private error codes, this greatly improves debugability.

Signed-off-by: Kent Overstreet <[email protected]>
---
 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


Reply via email to