ocfs2: Move ocfs2_bread() into dir.c
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>
This commit is contained in:
parent
0fcaa56a2a
commit
07446dc72c
|
@ -82,6 +82,49 @@ static int ocfs2_do_extend_dir(struct super_block *sb,
|
|||
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.
|
||||
|
|
|
@ -1132,56 +1132,6 @@ void ocfs2_drop_inode(struct inode *inode)
|
|||
mlog_exit_void();
|
||||
}
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
|
|
@ -117,8 +117,6 @@ extern struct kmem_cache *ocfs2_inode_cache;
|
|||
|
||||
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);
|
||||
|
|
Loading…
Reference in New Issue