Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 40066
b: refs/heads/master
c: 2359125
h: refs/heads/master
v: v3
  • Loading branch information
Steven Whitehouse committed Oct 20, 2006
1 parent dbf45cb commit 3102e7c
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 42fb00838a644d03f9a2a5fbbe0b668a5ff5df4d
refs/heads/master: 23591256d61354e20f12e98d7a496ad5c23de74c
13 changes: 7 additions & 6 deletions trunk/fs/gfs2/bmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -434,8 +434,7 @@ static int lookup_block(struct gfs2_inode *ip, struct buffer_head *bh,
*/

static int gfs2_block_pointers(struct inode *inode, u64 lblock, int create,
struct buffer_head *bh_map, struct metapath *mp,
unsigned int maxlen)
struct buffer_head *bh_map, struct metapath *mp)
{
struct gfs2_inode *ip = GFS2_I(inode);
struct gfs2_sbd *sdp = GFS2_SB(inode);
Expand All @@ -448,6 +447,7 @@ static int gfs2_block_pointers(struct inode *inode, u64 lblock, int create,
int new = 0;
u64 dblock = 0;
int boundary;
unsigned int maxlen = bh_map->b_size >> inode->i_blkbits;

BUG_ON(maxlen == 0);

Expand Down Expand Up @@ -541,30 +541,31 @@ static inline void bmap_unlock(struct inode *inode, int create)
}

int gfs2_block_map(struct inode *inode, u64 lblock, int create,
struct buffer_head *bh, unsigned int maxlen)
struct buffer_head *bh)
{
struct metapath mp;
int ret;

bmap_lock(inode, create);
ret = gfs2_block_pointers(inode, lblock, create, bh, &mp, maxlen);
ret = gfs2_block_pointers(inode, lblock, create, bh, &mp);
bmap_unlock(inode, create);
return ret;
}

int gfs2_extent_map(struct inode *inode, u64 lblock, int *new, u64 *dblock, unsigned *extlen)
{
struct metapath mp;
struct buffer_head bh = { .b_state = 0, .b_blocknr = 0, .b_size = 0 };
struct buffer_head bh = { .b_state = 0, .b_blocknr = 0 };
int ret;
int create = *new;

BUG_ON(!extlen);
BUG_ON(!dblock);
BUG_ON(!new);

bh.b_size = 1 << (inode->i_blkbits + 5);
bmap_lock(inode, create);
ret = gfs2_block_pointers(inode, lblock, create, &bh, &mp, 32);
ret = gfs2_block_pointers(inode, lblock, create, &bh, &mp);
bmap_unlock(inode, create);
*extlen = bh.b_size >> inode->i_blkbits;
*dblock = bh.b_blocknr;
Expand Down
2 changes: 1 addition & 1 deletion trunk/fs/gfs2/bmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ struct gfs2_inode;
struct page;

int gfs2_unstuff_dinode(struct gfs2_inode *ip, struct page *page);
int gfs2_block_map(struct inode *inode, u64 lblock, int create, struct buffer_head *bh, unsigned int maxlen);
int gfs2_block_map(struct inode *inode, u64 lblock, int create, struct buffer_head *bh);
int gfs2_extent_map(struct inode *inode, u64 lblock, int *new, u64 *dblock, unsigned *extlen);

int gfs2_truncatei(struct gfs2_inode *ip, u64 size);
Expand Down
6 changes: 4 additions & 2 deletions trunk/fs/gfs2/log.c
Original file line number Diff line number Diff line change
Expand Up @@ -312,10 +312,12 @@ void gfs2_log_release(struct gfs2_sbd *sdp, unsigned int blks)

static u64 log_bmap(struct gfs2_sbd *sdp, unsigned int lbn)
{
struct inode *inode = sdp->sd_jdesc->jd_inode;
int error;
struct buffer_head bh_map;
struct buffer_head bh_map = { .b_state = 0, .b_blocknr = 0 };

error = gfs2_block_map(sdp->sd_jdesc->jd_inode, lbn, 0, &bh_map, 1);
bh_map.b_size = 1 << inode->i_blkbits;
error = gfs2_block_map(inode, lbn, 0, &bh_map);
if (error || !bh_map.b_blocknr)
printk(KERN_INFO "error=%d, dbn=%llu lbn=%u", error, bh_map.b_blocknr, lbn);
gfs2_assert_withdraw(sdp, !error && bh_map.b_blocknr);
Expand Down
6 changes: 3 additions & 3 deletions trunk/fs/gfs2/ops_address.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ static void gfs2_page_add_databufs(struct gfs2_inode *ip, struct page *page,
int gfs2_get_block(struct inode *inode, sector_t lblock,
struct buffer_head *bh_result, int create)
{
return gfs2_block_map(inode, lblock, create, bh_result, 32);
return gfs2_block_map(inode, lblock, create, bh_result);
}

/**
Expand All @@ -83,7 +83,7 @@ static int gfs2_get_block_noalloc(struct inode *inode, sector_t lblock,
{
int error;

error = gfs2_block_map(inode, lblock, 0, bh_result, 1);
error = gfs2_block_map(inode, lblock, 0, bh_result);
if (error)
return error;
if (bh_result->b_blocknr == 0)
Expand All @@ -94,7 +94,7 @@ static int gfs2_get_block_noalloc(struct inode *inode, sector_t lblock,
static int gfs2_get_block_direct(struct inode *inode, sector_t lblock,
struct buffer_head *bh_result, int create)
{
return gfs2_block_map(inode, lblock, 0, bh_result, 32);
return gfs2_block_map(inode, lblock, 0, bh_result);
}

/**
Expand Down
5 changes: 3 additions & 2 deletions trunk/fs/gfs2/quota.c
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ static int bh_get(struct gfs2_quota_data *qd)
unsigned int block, offset;
struct buffer_head *bh;
int error;
struct buffer_head bh_map;
struct buffer_head bh_map = { .b_state = 0, .b_blocknr = 0 };

mutex_lock(&sdp->sd_quota_mutex);

Expand All @@ -263,7 +263,8 @@ static int bh_get(struct gfs2_quota_data *qd)
block = qd->qd_slot / sdp->sd_qc_per_block;
offset = qd->qd_slot % sdp->sd_qc_per_block;;

error = gfs2_block_map(&ip->i_inode, block, 0, &bh_map, 1);
bh_map.b_size = 1 << ip->i_inode.i_blkbits;
error = gfs2_block_map(&ip->i_inode, block, 0, &bh_map);
if (error)
goto fail;
error = gfs2_meta_read(ip->i_gl, bh_map.b_blocknr, DIO_WAIT, &bh);
Expand Down
5 changes: 3 additions & 2 deletions trunk/fs/gfs2/recovery.c
Original file line number Diff line number Diff line change
Expand Up @@ -372,11 +372,12 @@ static int clean_journal(struct gfs2_jdesc *jd, struct gfs2_log_header *head)
u32 hash;
struct buffer_head *bh;
int error;
struct buffer_head bh_map;
struct buffer_head bh_map = { .b_state = 0, .b_blocknr = 0 };

lblock = head->lh_blkno;
gfs2_replay_incr_blk(sdp, &lblock);
error = gfs2_block_map(&ip->i_inode, lblock, 0, &bh_map, 1);
bh_map.b_size = 1 << ip->i_inode.i_blkbits;
error = gfs2_block_map(&ip->i_inode, lblock, 0, &bh_map);
if (error)
return error;
if (!bh_map.b_blocknr) {
Expand Down

0 comments on commit 3102e7c

Please sign in to comment.