From: Sunil Mushran <sunil.mushran@oracle.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH] ocfs2: Switch over to JBD2.
Date: Fri, 29 Aug 2008 10:37:50 -0700 [thread overview]
Message-ID: <48B833EE.3050609@oracle.com> (raw)
In-Reply-To: <20080829004902.GF15974@mail.oracle.com>
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@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
>
>
next prev parent reply other threads:[~2008-08-29 17:37 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-29 0:49 [Ocfs2-devel] [PATCH] ocfs2: Switch over to JBD2 Joel Becker
2008-08-29 17:37 ` Sunil Mushran [this message]
2008-08-29 17:48 ` Mark Fasheh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48B833EE.3050609@oracle.com \
--to=sunil.mushran@oracle.com \
--cc=ocfs2-devel@oss.oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.