ocfs2: stop using bdev->bd_super for journal error logging
authorChristoph Hellwig <hch@lst.de>
Mon, 7 Aug 2023 11:26:24 +0000 (12:26 +0100)
committerChristian Brauner <brauner@kernel.org>
Wed, 9 Aug 2023 06:16:56 +0000 (08:16 +0200)
All ocfs2 journal error handling and logging is based on buffer_heads,
and the owning inode and thus super_block can be retrieved through
bh->b_assoc_map->host.  Switch to using that to remove the last users
of bdev->bd_super.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Message-Id: <20230807112625.652089-4-hch@lst.de>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/ocfs2/journal.c

index 25d8072..c19c730 100644 (file)
@@ -557,7 +557,7 @@ static void ocfs2_abort_trigger(struct jbd2_buffer_trigger_type *triggers,
             (unsigned long)bh,
             (unsigned long long)bh->b_blocknr);
 
-       ocfs2_error(bh->b_bdev->bd_super,
+       ocfs2_error(bh->b_assoc_map->host->i_sb,
                    "JBD2 has aborted our journal, ocfs2 cannot continue\n");
 }
 
@@ -780,14 +780,14 @@ void ocfs2_journal_dirty(handle_t *handle, struct buffer_head *bh)
                mlog_errno(status);
                if (!is_handle_aborted(handle)) {
                        journal_t *journal = handle->h_transaction->t_journal;
-                       struct super_block *sb = bh->b_bdev->bd_super;
 
                        mlog(ML_ERROR, "jbd2_journal_dirty_metadata failed. "
                                        "Aborting transaction and journal.\n");
                        handle->h_err = status;
                        jbd2_journal_abort_handle(handle);
                        jbd2_journal_abort(journal, status);
-                       ocfs2_abort(sb, "Journal already aborted.\n");
+                       ocfs2_abort(bh->b_assoc_map->host->i_sb,
+                                   "Journal already aborted.\n");
                }
        }
 }