ext4, jbd2: add an optimized bmap for the journal inode
[linux-block.git] / fs / jbd2 / journal.c
index 2696f43e7239f809bcc1ff7b784ea51d94fa6f99..c84f588fdcd038e8b7dd85f5384710c12cd31025 100644 (file)
@@ -970,10 +970,13 @@ int jbd2_journal_bmap(journal_t *journal, unsigned long blocknr,
 {
        int err = 0;
        unsigned long long ret;
-       sector_t block = 0;
+       sector_t block = blocknr;
 
-       if (journal->j_inode) {
-               block = blocknr;
+       if (journal->j_bmap) {
+               err = journal->j_bmap(journal, &block);
+               if (err == 0)
+                       *retp = block;
+       } else if (journal->j_inode) {
                ret = bmap(journal->j_inode, &block);
 
                if (ret || !block) {