Any reason we don't want to support both jbd and jdb2. As in, using
incompat to specifically enable jbd2.
I am talking about short term only. Long term is jdb2 only.
Joel Becker wrote:> ocfs2 wants JBD2 for many reasons, not the least of which is that JBD is
> limiting our maximum filesystem size.
>
> It's a pretty trivial change. Most functions are just renamed. The
> only functional change is moving to Jan's inode-based ordered data
mode.
> It's better, too.
>
> Because JBD2 reads and writes JBD journals, this is compatible with any
> existing filesystem. It can even interact with JBD-based ocfs2 as long
> as the journal is formated for JBD.
>
> Signed-off-by: Joel Becker <joel.becker at oracle.com>
> ---
> fs/Kconfig | 30 +++++++++---------
> fs/ocfs2/alloc.c | 27 +++++------------
> fs/ocfs2/aops.c | 21 ++++---------
> fs/ocfs2/file.c | 14 ++++++--
> fs/ocfs2/inode.c | 5 +++
> fs/ocfs2/inode.h | 1 +
> fs/ocfs2/journal.c | 82
++++++++++++++++++++++----------------------------
> fs/ocfs2/journal.h | 20 +++++++++---
> fs/ocfs2/ocfs2.h | 2 +-
> fs/ocfs2/super.c | 10 ++++--
> fs/ocfs2/uptodate.c | 2 +-
> 11 files changed, 104 insertions(+), 110 deletions(-)
>
> diff --git a/fs/Kconfig b/fs/Kconfig
> index abccb5d..535bdd3 100644
> --- a/fs/Kconfig
> +++ b/fs/Kconfig
> @@ -206,17 +206,16 @@ config JBD
> tristate
> help
> This is a generic journalling layer for block devices. It is
> - currently used by the ext3 and OCFS2 file systems, but it could
> - also be used to add journal support to other file systems or block
> + currently used by the ext3 file system, but it could also be
> + used to add journal support to other file systems or block
> devices such as RAID or LVM.
>
> - If you are using the ext3 or OCFS2 file systems, you need to
> - say Y here. If you are not using ext3 OCFS2 then you will probably
> - want to say N.
> + If you are using the ext3 file system, you need to say Y here.
> + If you are not using ext3 then you will probably want to say N.
>
> To compile this device as a module, choose M here: the module will be
> - called jbd. If you are compiling ext3 or OCFS2 into the kernel,
> - you cannot compile this code as a module.
> + called jbd. If you are compiling ext3 into the kernel, you
> + cannot compile this code as a module.
>
> config JBD_DEBUG
> bool "JBD (ext3) debugging support"
> @@ -240,16 +239,17 @@ config JBD2
> help
> This is a generic journaling layer for block devices that support
> both 32-bit and 64-bit block numbers. It is currently used by
> - the ext4dev/ext4 filesystem, but it could also be used to add
> - journal support to other file systems or block devices such
> - as RAID or LVM.
> + the ext4dev/ext4 and OCFS2 filesystems, but it could also be
> + used to add journal support to other file systems or block
> + devices such as RAID or LVM.
>
> - If you are using ext4dev/ext4, you need to say Y here. If you are not
> - using ext4dev/ext4 then you will probably want to say N.
> + If you are using ext4dev/ext4 or OCFS2, you need to say Y here.
> + If you are not using ext4dev/ext4 or OCFS2 then you will
> + probably want to say N.
>
> To compile this device as a module, choose M here. The module will be
> - called jbd2. If you are compiling ext4dev/ext4 into the kernel,
> - you cannot compile this code as a module.
> + called jbd2. If you are compiling ext4dev/ext4 or OCFS2 into the
> + kernel, you cannot compile this code as a module.
>
> config JBD2_DEBUG
> bool "JBD2 (ext4dev/ext4) debugging support"
> @@ -426,7 +426,7 @@ config OCFS2_FS
> tristate "OCFS2 file system support"
> depends on NET && SYSFS
> select CONFIGFS_FS
> - select JBD
> + select JBD2
> select CRC32
> help
> OCFS2 is a general purpose extent based shared disk cluster file
> diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
> index 10bfb46..0f84811 100644
> --- a/fs/ocfs2/alloc.c
> +++ b/fs/ocfs2/alloc.c
> @@ -6008,20 +6008,13 @@ bail:
> return status;
> }
>
> -static int ocfs2_writeback_zero_func(handle_t *handle, struct buffer_head
*bh)
> +static int ocfs2_zero_func(handle_t *handle, struct buffer_head *bh)
> {
> set_buffer_uptodate(bh);
> mark_buffer_dirty(bh);
> return 0;
> }
>
> -static int ocfs2_ordered_zero_func(handle_t *handle, struct buffer_head
*bh)
> -{
> - set_buffer_uptodate(bh);
> - mark_buffer_dirty(bh);
> - return ocfs2_journal_dirty_data(handle, bh);
> -}
> -
> static void ocfs2_map_and_dirty_page(struct inode *inode, handle_t
*handle,
> unsigned int from, unsigned int to,
> struct page *page, int zero, u64 *phys)
> @@ -6040,17 +6033,13 @@ static void ocfs2_map_and_dirty_page(struct inode
*inode, handle_t *handle,
> * here if they aren't - ocfs2_map_page_blocks()
> * might've skipped some
> */
> - if (ocfs2_should_order_data(inode)) {
> - ret = walk_page_buffers(handle,
> - page_buffers(page),
> - from, to, &partial,
> - ocfs2_ordered_zero_func);
> - if (ret < 0)
> - mlog_errno(ret);
> - } else {
> - ret = walk_page_buffers(handle, page_buffers(page),
> - from, to, &partial,
> - ocfs2_writeback_zero_func);
> + ret = walk_page_buffers(handle, page_buffers(page),
> + from, to, &partial,
> + ocfs2_zero_func);
> + if (ret < 0)
> + mlog_errno(ret);
> + else if (ocfs2_should_order_data(inode)) {
> + ret = ocfs2_jbd2_file_inode(handle, inode);
> if (ret < 0)
> mlog_errno(ret);
> }
> diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
> index 506c24f..5d30782 100644
> --- a/fs/ocfs2/aops.c
> +++ b/fs/ocfs2/aops.c
> @@ -485,11 +485,8 @@ handle_t *ocfs2_start_walk_page_trans(struct inode
*inode,
> }
>
> if (ocfs2_should_order_data(inode)) {
> - ret = walk_page_buffers(handle,
> - page_buffers(page),
> - from, to, NULL,
> - ocfs2_journal_dirty_data);
> - if (ret < 0)
> + ret = ocfs2_jbd2_file_inode(handle, inode);
> + if (ret < 0)
> mlog_errno(ret);
> }
> out:
> @@ -669,7 +666,7 @@ static void ocfs2_invalidatepage(struct page *page,
unsigned long offset)
> {
> journal_t *journal =
OCFS2_SB(page->mapping->host->i_sb)->journal->j_journal;
>
> - journal_invalidatepage(journal, page, offset);
> + jbd2_journal_invalidatepage(journal, page, offset);
> }
>
> static int ocfs2_releasepage(struct page *page, gfp_t wait)
> @@ -678,7 +675,7 @@ static int ocfs2_releasepage(struct page *page, gfp_t
wait)
>
> if (!page_has_buffers(page))
> return 0;
> - return journal_try_to_free_buffers(journal, page, wait);
> + return jbd2_journal_try_to_free_buffers(journal, page, wait);
> }
>
> static ssize_t ocfs2_direct_IO(int rw,
> @@ -1075,10 +1072,7 @@ static void ocfs2_write_failure(struct inode *inode,
>
> if (page_has_buffers(tmppage)) {
> if (ocfs2_should_order_data(inode))
> - walk_page_buffers(wc->w_handle,
> - page_buffers(tmppage),
> - from, to, NULL,
> - ocfs2_journal_dirty_data);
> + ocfs2_jbd2_file_inode(wc->w_handle, inode);
>
> block_commit_write(tmppage, from, to);
> }
> @@ -1906,10 +1900,7 @@ int ocfs2_write_end_nolock(struct address_space
*mapping,
>
> if (page_has_buffers(tmppage)) {
> if (ocfs2_should_order_data(inode))
> - walk_page_buffers(wc->w_handle,
> - page_buffers(tmppage),
> - from, to, NULL,
> - ocfs2_journal_dirty_data);
> + ocfs2_jbd2_file_inode(wc->w_handle, inode);
> block_commit_write(tmppage, from, to);
> }
> }
> diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
> index ec2ed15..2f2217a 100644
> --- a/fs/ocfs2/file.c
> +++ b/fs/ocfs2/file.c
> @@ -184,7 +184,7 @@ static int ocfs2_sync_file(struct file *file,
> goto bail;
>
> journal = osb->journal->j_journal;
> - err = journal_force_commit(journal);
> + err = jbd2_journal_force_commit(journal);
>
> bail:
> mlog_exit(err);
> @@ -1096,9 +1096,15 @@ int ocfs2_setattr(struct dentry *dentry, struct
iattr *attr)
> goto bail_unlock;
> }
>
> - if (i_size_read(inode) > attr->ia_size)
> + if (i_size_read(inode) > attr->ia_size) {
> + if (ocfs2_should_order_data(inode)) {
> + status = ocfs2_begin_ordered_truncate(inode,
> + attr->ia_size);
> + if (status)
> + goto bail_unlock;
> + }
> status = ocfs2_truncate_file(inode, bh, attr->ia_size);
> - else
> + } else
> status = ocfs2_extend_file(inode, bh, attr->ia_size);
> if (status < 0) {
> if (status != -ENOSPC)
> @@ -2040,7 +2046,7 @@ out_dio:
> */
> if (old_size != i_size_read(inode) ||
> old_clusters != OCFS2_I(inode)->ip_clusters) {
> - ret = journal_force_commit(osb->journal->j_journal);
> + ret = jbd2_journal_force_commit(osb->journal->j_journal);
> if (ret < 0)
> written = ret;
> }
> diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c
> index 7e9e4c7..ce8ec09 100644
> --- a/fs/ocfs2/inode.c
> +++ b/fs/ocfs2/inode.c
> @@ -909,6 +909,9 @@ void ocfs2_delete_inode(struct inode *inode)
> goto bail;
> }
>
> + if (ocfs2_should_order_data(inode))
> + ocfs2_begin_ordered_truncate(inode, 0);
> +
> if (!ocfs2_inode_is_valid_to_delete(inode)) {
> /* It's probably not necessary to truncate_inode_pages
> * here but we do it for safety anyway (it will most
> @@ -1081,6 +1084,8 @@ void ocfs2_clear_inode(struct inode *inode)
> oi->ip_last_trans = 0;
> oi->ip_dir_start_lookup = 0;
> oi->ip_blkno = 0ULL;
> +
jbd2_journal_release_jbd_inode(OCFS2_SB(inode->i_sb)->journal->j_journal,
> + &oi->ip_jinode);
>
> bail:
> mlog_exit_void();
> diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h
> index 390a855..3b2eb2a 100644
> --- a/fs/ocfs2/inode.h
> +++ b/fs/ocfs2/inode.h
> @@ -68,6 +68,7 @@ struct ocfs2_inode_info
> struct ocfs2_extent_map ip_extent_map;
>
> struct inode vfs_inode;
> + struct jbd2_inode ip_jinode;
> };
>
> /*
> diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
> index c47bc2a..1d188b1 100644
> --- a/fs/ocfs2/journal.c
> +++ b/fs/ocfs2/journal.c
> @@ -215,9 +215,9 @@ static int ocfs2_commit_cache(struct ocfs2_super *osb)
> goto finally;
> }
>
> - journal_lock_updates(journal->j_journal);
> - status = journal_flush(journal->j_journal);
> - journal_unlock_updates(journal->j_journal);
> + jbd2_journal_lock_updates(journal->j_journal);
> + status = jbd2_journal_flush(journal->j_journal);
> + jbd2_journal_unlock_updates(journal->j_journal);
> if (status < 0) {
> up_write(&journal->j_trans_barrier);
> mlog_errno(status);
> @@ -264,7 +264,7 @@ handle_t *ocfs2_start_trans(struct ocfs2_super *osb,
int max_buffs)
>
> down_read(&osb->journal->j_trans_barrier);
>
> - handle = journal_start(journal, max_buffs);
> + handle = jbd2_journal_start(journal, max_buffs);
> if (IS_ERR(handle)) {
> up_read(&osb->journal->j_trans_barrier);
>
> @@ -290,7 +290,7 @@ int ocfs2_commit_trans(struct ocfs2_super *osb,
>
> BUG_ON(!handle);
>
> - ret = journal_stop(handle);
> + ret = jbd2_journal_stop(handle);
> if (ret < 0)
> mlog_errno(ret);
>
> @@ -304,7 +304,7 @@ int ocfs2_commit_trans(struct ocfs2_super *osb,
> * transaction. extend_trans will either extend the current handle by
> * nblocks, or commit it and start a new one with nblocks credits.
> *
> - * This might call journal_restart() which will commit dirty buffers
> + * This might call jbd2_journal_restart() which will commit dirty buffers
> * and then restart the transaction. Before calling
> * ocfs2_extend_trans(), any changed blocks should have been
> * dirtied. After calling it, all blocks which need to be changed must
> @@ -332,7 +332,7 @@ int ocfs2_extend_trans(handle_t *handle, int nblocks)
> #ifdef CONFIG_OCFS2_DEBUG_FS
> status = 1;
> #else
> - status = journal_extend(handle, nblocks);
> + status = jbd2_journal_extend(handle, nblocks);
> if (status < 0) {
> mlog_errno(status);
> goto bail;
> @@ -340,8 +340,10 @@ int ocfs2_extend_trans(handle_t *handle, int nblocks)
> #endif
>
> if (status > 0) {
> - mlog(0, "journal_extend failed, trying journal_restart\n");
> - status = journal_restart(handle, nblocks);
> + mlog(0,
> + "jbd2_journal_extend failed, trying "
> + "jbd2_journal_restart\n");
> + status = jbd2_journal_restart(handle, nblocks);
> if (status < 0) {
> mlog_errno(status);
> goto bail;
> @@ -393,11 +395,11 @@ int ocfs2_journal_access(handle_t *handle,
> switch (type) {
> case OCFS2_JOURNAL_ACCESS_CREATE:
> case OCFS2_JOURNAL_ACCESS_WRITE:
> - status = journal_get_write_access(handle, bh);
> + status = jbd2_journal_get_write_access(handle, bh);
> break;
>
> case OCFS2_JOURNAL_ACCESS_UNDO:
> - status = journal_get_undo_access(handle, bh);
> + status = jbd2_journal_get_undo_access(handle, bh);
> break;
>
> default:
> @@ -422,7 +424,7 @@ int ocfs2_journal_dirty(handle_t *handle,
> mlog_entry("(bh->b_blocknr=%llu)\n",
> (unsigned long long)bh->b_blocknr);
>
> - status = journal_dirty_metadata(handle, bh);
> + status = jbd2_journal_dirty_metadata(handle, bh);
> if (status < 0)
> mlog(ML_ERROR, "Could not dirty metadata buffer. "
> "(bh->b_blocknr=%llu)\n",
> @@ -432,19 +434,7 @@ int ocfs2_journal_dirty(handle_t *handle,
> return status;
> }
>
> -int ocfs2_journal_dirty_data(handle_t *handle,
> - struct buffer_head *bh)
> -{
> - int err = journal_dirty_data(handle, bh);
> - if (err)
> - mlog_errno(err);
> - /* TODO: When we can handle it, abort the handle and go RO on
> - * error here. */
> -
> - return err;
> -}
> -
> -#define OCFS2_DEFAULT_COMMIT_INTERVAL (HZ * JBD_DEFAULT_MAX_COMMIT_AGE)
> +#define OCFS2_DEFAULT_COMMIT_INTERVAL (HZ * JBD2_DEFAULT_MAX_COMMIT_AGE)
>
> void ocfs2_set_journal_params(struct ocfs2_super *osb)
> {
> @@ -457,9 +447,9 @@ void ocfs2_set_journal_params(struct ocfs2_super *osb)
> spin_lock(&journal->j_state_lock);
> journal->j_commit_interval = commit_interval;
> if (osb->s_mount_opt & OCFS2_MOUNT_BARRIER)
> - journal->j_flags |= JFS_BARRIER;
> + journal->j_flags |= JBD2_BARRIER;
> else
> - journal->j_flags &= ~JFS_BARRIER;
> + journal->j_flags &= ~JBD2_BARRIER;
> spin_unlock(&journal->j_state_lock);
> }
>
> @@ -524,14 +514,14 @@ int ocfs2_journal_init(struct ocfs2_journal *journal,
int *dirty)
> mlog(0, "inode->ip_clusters = %u\n",
OCFS2_I(inode)->ip_clusters);
>
> /* call the kernels journal init function now */
> - j_journal = journal_init_inode(inode);
> + j_journal = jbd2_journal_init_inode(inode);
> if (j_journal == NULL) {
> mlog(ML_ERROR, "Linux journal layer error\n");
> status = -EINVAL;
> goto done;
> }
>
> - mlog(0, "Returned from journal_init_inode\n");
> + mlog(0, "Returned from jbd2_journal_init_inode\n");
> mlog(0, "j_journal->j_maxlen = %u\n",
j_journal->j_maxlen);
>
> *dirty = (le32_to_cpu(di->id1.journal1.ij_flags) &
> @@ -639,7 +629,7 @@ void ocfs2_journal_shutdown(struct ocfs2_super *osb)
> if (journal->j_state != OCFS2_JOURNAL_LOADED)
> goto done;
>
> - /* need to inc inode use count as journal_destroy will iput. */
> + /* need to inc inode use count - jbd2_journal_destroy will iput. */
> if (!igrab(inode))
> BUG();
>
> @@ -668,9 +658,9 @@ void ocfs2_journal_shutdown(struct ocfs2_super *osb)
> BUG_ON(atomic_read(&(osb->journal->j_num_trans)) != 0);
>
> if (ocfs2_mount_local(osb)) {
> - journal_lock_updates(journal->j_journal);
> - status = journal_flush(journal->j_journal);
> - journal_unlock_updates(journal->j_journal);
> + jbd2_journal_lock_updates(journal->j_journal);
> + status = jbd2_journal_flush(journal->j_journal);
> + jbd2_journal_unlock_updates(journal->j_journal);
> if (status < 0)
> mlog_errno(status);
> }
> @@ -686,7 +676,7 @@ void ocfs2_journal_shutdown(struct ocfs2_super *osb)
> }
>
> /* Shutdown the kernel journal system */
> - journal_destroy(journal->j_journal);
> + jbd2_journal_destroy(journal->j_journal);
>
> OCFS2_I(inode)->ip_open_count--;
>
> @@ -711,15 +701,15 @@ static void ocfs2_clear_journal_error(struct
super_block *sb,
> {
> int olderr;
>
> - olderr = journal_errno(journal);
> + olderr = jbd2_journal_errno(journal);
> if (olderr) {
> mlog(ML_ERROR, "File system error %d recorded in "
> "journal %u.\n", olderr, slot);
> mlog(ML_ERROR, "File system on device %s needs checking.\n",
> sb->s_id);
>
> - journal_ack_err(journal);
> - journal_clear_err(journal);
> + jbd2_journal_ack_err(journal);
> + jbd2_journal_clear_err(journal);
> }
> }
>
> @@ -734,7 +724,7 @@ int ocfs2_journal_load(struct ocfs2_journal *journal,
int local, int replayed)
>
> osb = journal->j_osb;
>
> - status = journal_load(journal->j_journal);
> + status = jbd2_journal_load(journal->j_journal);
> if (status < 0) {
> mlog(ML_ERROR, "Failed to load journal!\n");
> goto done;
> @@ -778,7 +768,7 @@ int ocfs2_journal_wipe(struct ocfs2_journal *journal,
int full)
>
> BUG_ON(!journal);
>
> - status = journal_wipe(journal->j_journal, full);
> + status = jbd2_journal_wipe(journal->j_journal, full);
> if (status < 0) {
> mlog_errno(status);
> goto bail;
> @@ -1229,19 +1219,19 @@ static int ocfs2_replay_journal(struct ocfs2_super
*osb,
> }
>
> mlog(0, "calling journal_init_inode\n");
> - journal = journal_init_inode(inode);
> + journal = jbd2_journal_init_inode(inode);
> if (journal == NULL) {
> mlog(ML_ERROR, "Linux journal layer error\n");
> status = -EIO;
> goto done;
> }
>
> - status = journal_load(journal);
> + status = jbd2_journal_load(journal);
> if (status < 0) {
> mlog_errno(status);
> if (!igrab(inode))
> BUG();
> - journal_destroy(journal);
> + jbd2_journal_destroy(journal);
> goto done;
> }
>
> @@ -1249,9 +1239,9 @@ static int ocfs2_replay_journal(struct ocfs2_super
*osb,
>
> /* wipe the journal */
> mlog(0, "flushing the journal.\n");
> - journal_lock_updates(journal);
> - status = journal_flush(journal);
> - journal_unlock_updates(journal);
> + jbd2_journal_lock_updates(journal);
> + status = jbd2_journal_flush(journal);
> + jbd2_journal_unlock_updates(journal);
> if (status < 0)
> mlog_errno(status);
>
> @@ -1272,7 +1262,7 @@ static int ocfs2_replay_journal(struct ocfs2_super
*osb,
> if (!igrab(inode))
> BUG();
>
> - journal_destroy(journal);
> + jbd2_journal_destroy(journal);
>
> done:
> /* drop the lock on this nodes journal */
> diff --git a/fs/ocfs2/journal.h b/fs/ocfs2/journal.h
> index 2178ebf..be4967a 100644
> --- a/fs/ocfs2/journal.h
> +++ b/fs/ocfs2/journal.h
> @@ -27,7 +27,7 @@
> #define OCFS2_JOURNAL_H
>
> #include <linux/fs.h>
> -#include <linux/jbd.h>
> +#include <linux/jbd2.h>
>
> enum ocfs2_journal_state {
> OCFS2_JOURNAL_FREE = 0,
> @@ -215,8 +215,8 @@ static inline void ocfs2_checkpoint_inode(struct inode
*inode)
> * buffer. Will have to call ocfs2_journal_dirty
once
> * we've actually dirtied it. Type is one of
. or .
> * ocfs2_journal_dirty - Mark a journalled buffer as having dirty
data.
> - * ocfs2_journal_dirty_data - Indicate that a data buffer should go out
before
> - * the current handle commits.
> + * ocfs2_jbd2_file_inode - Mark an inode so that its data goes out
before
> + * the current handle commits.
> */
>
> /* You must always start_trans with a number of buffs > 0, but it's
> @@ -268,8 +268,6 @@ int ocfs2_journal_access(handle_t
*handle,
> */
> int ocfs2_journal_dirty(handle_t *handle,
> struct buffer_head *bh);
> -int ocfs2_journal_dirty_data(handle_t *handle,
> - struct buffer_head *bh);
>
> /*
> * Credit Macros:
> @@ -415,4 +413,16 @@ static inline int ocfs2_calc_tree_trunc_credits(struct
super_block *sb,
> return credits;
> }
>
> +static inline int ocfs2_jbd2_file_inode(handle_t *handle, struct inode
*inode)
> +{
> + return jbd2_journal_file_inode(handle,
&OCFS2_I(inode)->ip_jinode);
> +}
> +
> +static inline int ocfs2_begin_ordered_truncate(struct inode *inode,
> + loff_t new_size)
> +{
> + return
jbd2_journal_begin_ordered_truncate(&OCFS2_I(inode)->ip_jinode,
> + new_size);
> +}
> +
> #endif /* OCFS2_JOURNAL_H */
> diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
> index 7f625f2..400ad8f 100644
> --- a/fs/ocfs2/ocfs2.h
> +++ b/fs/ocfs2/ocfs2.h
> @@ -34,7 +34,7 @@
> #include <linux/workqueue.h>
> #include <linux/kref.h>
> #include <linux/mutex.h>
> -#include <linux/jbd.h>
> +#include <linux/jbd2.h>
>
> /* For union ocfs2_dlm_lksb */
> #include "stackglue.h"
> diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
> index 88255d3..7d4b701 100644
> --- a/fs/ocfs2/super.c
> +++ b/fs/ocfs2/super.c
> @@ -205,10 +205,11 @@ static int ocfs2_sync_fs(struct super_block *sb, int
wait)
> ocfs2_schedule_truncate_log_flush(osb, 0);
> }
>
> - if (journal_start_commit(OCFS2_SB(sb)->journal->j_journal,
&target)) {
> + if (jbd2_journal_start_commit(OCFS2_SB(sb)->journal->j_journal,
> + &target)) {
> if (wait)
> - log_wait_commit(OCFS2_SB(sb)->journal->j_journal,
> - target);
> + jbd2_log_wait_commit(OCFS2_SB(sb)->journal->j_journal,
> + target);
> }
> return 0;
> }
> @@ -325,6 +326,7 @@ static struct inode *ocfs2_alloc_inode(struct
super_block *sb)
> if (!oi)
> return NULL;
>
> + jbd2_journal_init_jbd_inode(&oi->ip_jinode,
&oi->vfs_inode);
> return &oi->vfs_inode;
> }
>
> @@ -873,7 +875,7 @@ static int ocfs2_parse_options(struct super_block *sb,
> if (option < 0)
> return 0;
> if (option == 0)
> - option = JBD_DEFAULT_MAX_COMMIT_AGE;
> + option = JBD2_DEFAULT_MAX_COMMIT_AGE;
> mopt->commit_interval = HZ * option;
> break;
> case Opt_localalloc:
> diff --git a/fs/ocfs2/uptodate.c b/fs/ocfs2/uptodate.c
> index 4da8851..c0cd75a 100644
> --- a/fs/ocfs2/uptodate.c
> +++ b/fs/ocfs2/uptodate.c
> @@ -53,7 +53,7 @@
> #include <linux/highmem.h>
> #include <linux/buffer_head.h>
> #include <linux/rbtree.h>
> -#include <linux/jbd.h>
> +#include <linux/jbd2.h>
>
> #define MLOG_MASK_PREFIX ML_UPTODATE
>
>