mirror of https://gitee.com/openkylin/linux.git
gfs2: Turn gfs2_meta_indirect_buffer into gfs2_meta_buffer
Instead of only supporting GFS2_METATYPE_DI and GFS2_METATYPE_IN blocks, make the block type a parameter of gfs2_meta_indirect_buffer and rename the function to gfs2_meta_buffer. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
parent
152f58c9af
commit
6d8da302ae
|
@ -331,7 +331,7 @@ static int __fillup_metapath(struct gfs2_inode *ip, struct metapath *mp,
|
||||||
|
|
||||||
if (!dblock)
|
if (!dblock)
|
||||||
break;
|
break;
|
||||||
ret = gfs2_meta_indirect_buffer(ip, x + 1, dblock, &mp->mp_bh[x + 1]);
|
ret = gfs2_meta_buffer(ip, GFS2_METATYPE_IN, dblock, &mp->mp_bh[x + 1]);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -466,23 +466,22 @@ void gfs2_journal_wipe(struct gfs2_inode *ip, u64 bstart, u32 blen)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gfs2_meta_indirect_buffer - Get a metadata buffer
|
* gfs2_meta_buffer - Get a metadata buffer
|
||||||
* @ip: The GFS2 inode
|
* @ip: The GFS2 inode
|
||||||
* @height: The level of this buf in the metadata (indir addr) tree (if any)
|
* @mtype: The block type (GFS2_METATYPE_*)
|
||||||
* @num: The block number (device relative) of the buffer
|
* @num: The block number (device relative) of the buffer
|
||||||
* @bhp: the buffer is returned here
|
* @bhp: the buffer is returned here
|
||||||
*
|
*
|
||||||
* Returns: errno
|
* Returns: errno
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int gfs2_meta_indirect_buffer(struct gfs2_inode *ip, int height, u64 num,
|
int gfs2_meta_buffer(struct gfs2_inode *ip, u32 mtype, u64 num,
|
||||||
struct buffer_head **bhp)
|
struct buffer_head **bhp)
|
||||||
{
|
{
|
||||||
struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
|
struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
|
||||||
struct gfs2_glock *gl = ip->i_gl;
|
struct gfs2_glock *gl = ip->i_gl;
|
||||||
struct buffer_head *bh;
|
struct buffer_head *bh;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
u32 mtype = height ? GFS2_METATYPE_IN : GFS2_METATYPE_DI;
|
|
||||||
int rahead = 0;
|
int rahead = 0;
|
||||||
|
|
||||||
if (num == ip->i_no_addr)
|
if (num == ip->i_no_addr)
|
||||||
|
|
|
@ -61,13 +61,13 @@ enum {
|
||||||
|
|
||||||
extern void gfs2_remove_from_journal(struct buffer_head *bh, int meta);
|
extern void gfs2_remove_from_journal(struct buffer_head *bh, int meta);
|
||||||
extern void gfs2_journal_wipe(struct gfs2_inode *ip, u64 bstart, u32 blen);
|
extern void gfs2_journal_wipe(struct gfs2_inode *ip, u64 bstart, u32 blen);
|
||||||
extern int gfs2_meta_indirect_buffer(struct gfs2_inode *ip, int height, u64 num,
|
extern int gfs2_meta_buffer(struct gfs2_inode *ip, u32 mtype, u64 num,
|
||||||
struct buffer_head **bhp);
|
struct buffer_head **bhp);
|
||||||
|
|
||||||
static inline int gfs2_meta_inode_buffer(struct gfs2_inode *ip,
|
static inline int gfs2_meta_inode_buffer(struct gfs2_inode *ip,
|
||||||
struct buffer_head **bhp)
|
struct buffer_head **bhp)
|
||||||
{
|
{
|
||||||
return gfs2_meta_indirect_buffer(ip, 0, ip->i_no_addr, bhp);
|
return gfs2_meta_buffer(ip, GFS2_METATYPE_DI, ip->i_no_addr, bhp);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct buffer_head *gfs2_meta_ra(struct gfs2_glock *gl, u64 dblock, u32 extlen);
|
struct buffer_head *gfs2_meta_ra(struct gfs2_glock *gl, u64 dblock, u32 extlen);
|
||||||
|
|
Loading…
Reference in New Issue