[Ocfs2-devel] [PATCH] ocfs2: Switch over to JBD2.

Sunil Mushran sunil.mushran at oracle.com
Fri Aug 29 10:37:50 PDT 2008


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
>  
>   




More information about the Ocfs2-devel mailing list