+++ /dev/null
-From: Joel Becker <joel.becker@oracle.com>
-Subject: ocfs2: Move ocfs2_bread() into dir.c
-Patch-mainline: 2.6.28
-
-dir.c is the only place using ocfs2_bread(), so let's make it static to
-that file.
-
-Signed-off-by: Joel Becker <joel.becker@oracle.com>
-Signed-off-by: Mark Fasheh <mfasheh@suse.com>
----
- fs/ocfs2/dir.c | 43 +++++++++++++++++++++++++++++++++++++++++++
- fs/ocfs2/inode.c | 50 --------------------------------------------------
- fs/ocfs2/inode.h | 2 --
- 3 files changed, 43 insertions(+), 52 deletions(-)
-
-Index: linux-2.6.27/fs/ocfs2/dir.c
-===================================================================
---- linux-2.6.27.orig/fs/ocfs2/dir.c
-+++ linux-2.6.27/fs/ocfs2/dir.c
-@@ -82,6 +82,49 @@ static int ocfs2_do_extend_dir(struct su
- struct ocfs2_alloc_context *meta_ac,
- struct buffer_head **new_bh);
-
-+static struct buffer_head *ocfs2_bread(struct inode *inode,
-+ int block, int *err, int reada)
-+{
-+ struct buffer_head *bh = NULL;
-+ int tmperr;
-+ u64 p_blkno;
-+ int readflags = OCFS2_BH_CACHED;
-+
-+ if (reada)
-+ readflags |= OCFS2_BH_READAHEAD;
-+
-+ if (((u64)block << inode->i_sb->s_blocksize_bits) >=
-+ i_size_read(inode)) {
-+ BUG_ON(!reada);
-+ return NULL;
-+ }
-+
-+ down_read(&OCFS2_I(inode)->ip_alloc_sem);
-+ tmperr = ocfs2_extent_map_get_blocks(inode, block, &p_blkno, NULL,
-+ NULL);
-+ up_read(&OCFS2_I(inode)->ip_alloc_sem);
-+ if (tmperr < 0) {
-+ mlog_errno(tmperr);
-+ goto fail;
-+ }
-+
-+ tmperr = ocfs2_read_blocks(inode, p_blkno, 1, &bh, readflags);
-+ if (tmperr < 0)
-+ goto fail;
-+
-+ tmperr = 0;
-+
-+ *err = 0;
-+ return bh;
-+
-+fail:
-+ brelse(bh);
-+ bh = NULL;
-+
-+ *err = -EIO;
-+ return NULL;
-+}
-+
- /*
- * bh passed here can be an inode block or a dir data block, depending
- * on the inode inline data flag.
-Index: linux-2.6.27/fs/ocfs2/inode.c
-===================================================================
---- linux-2.6.27.orig/fs/ocfs2/inode.c
-+++ linux-2.6.27/fs/ocfs2/inode.c
-@@ -1133,56 +1133,6 @@ void ocfs2_drop_inode(struct inode *inod
- }
-
- /*
-- * TODO: this should probably be merged into ocfs2_get_block
-- *
-- * However, you now need to pay attention to the cont_prepare_write()
-- * stuff in ocfs2_get_block (that is, ocfs2_get_block pretty much
-- * expects never to extend).
-- */
--struct buffer_head *ocfs2_bread(struct inode *inode,
-- int block, int *err, int reada)
--{
-- struct buffer_head *bh = NULL;
-- int tmperr;
-- u64 p_blkno;
-- int readflags = OCFS2_BH_CACHED;
--
-- if (reada)
-- readflags |= OCFS2_BH_READAHEAD;
--
-- if (((u64)block << inode->i_sb->s_blocksize_bits) >=
-- i_size_read(inode)) {
-- BUG_ON(!reada);
-- return NULL;
-- }
--
-- down_read(&OCFS2_I(inode)->ip_alloc_sem);
-- tmperr = ocfs2_extent_map_get_blocks(inode, block, &p_blkno, NULL,
-- NULL);
-- up_read(&OCFS2_I(inode)->ip_alloc_sem);
-- if (tmperr < 0) {
-- mlog_errno(tmperr);
-- goto fail;
-- }
--
-- tmperr = ocfs2_read_blocks(inode, p_blkno, 1, &bh, readflags);
-- if (tmperr < 0)
-- goto fail;
--
-- tmperr = 0;
--
-- *err = 0;
-- return bh;
--
--fail:
-- brelse(bh);
-- bh = NULL;
--
-- *err = -EIO;
-- return NULL;
--}
--
--/*
- * This is called from our getattr.
- */
- int ocfs2_inode_revalidate(struct dentry *dentry)
-Index: linux-2.6.27/fs/ocfs2/inode.h
-===================================================================
---- linux-2.6.27.orig/fs/ocfs2/inode.h
-+++ linux-2.6.27/fs/ocfs2/inode.h
-@@ -117,8 +117,6 @@ extern struct kmem_cache *ocfs2_inode_ca
-
- extern const struct address_space_operations ocfs2_aops;
-
--struct buffer_head *ocfs2_bread(struct inode *inode, int block,
-- int *err, int reada);
- void ocfs2_clear_inode(struct inode *inode);
- void ocfs2_delete_inode(struct inode *inode);
- void ocfs2_drop_inode(struct inode *inode);