Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 302690
b: refs/heads/master
c: 29c578f
h: refs/heads/master
v: v3
  • Loading branch information
Bob Peterson authored and Steven Whitehouse committed Apr 24, 2012
1 parent 3c0f5bb commit 01b4585
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 12 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: 36f5580be1dde43eb94ce4d58bc20e493be09f09
refs/heads/master: 29c578f567eec57b8db761d7adf6512d2d3e8efe
23 changes: 12 additions & 11 deletions trunk/fs/gfs2/rgrp.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,24 +70,25 @@ static u32 rgblk_search(struct gfs2_rgrpd *rgd, u32 goal,

/**
* gfs2_setbit - Set a bit in the bitmaps
* @buffer: the buffer that holds the bitmaps
* @buflen: the length (in bytes) of the buffer
* @rgd: the resource group descriptor
* @buf1: the primary buffer that holds the bitmaps
* @buf2: the clone buffer that holds the bitmaps
* @bi: the bitmap structure
* @block: the block to set
* @new_state: the new state of the block
*
*/

static inline void gfs2_setbit(struct gfs2_rgrpd *rgd, unsigned char *buf1,
unsigned char *buf2, unsigned int offset,
struct gfs2_bitmap *bi, u32 block,
unsigned char new_state)
unsigned char *buf2, struct gfs2_bitmap *bi,
u32 block, unsigned char new_state)
{
unsigned char *byte1, *byte2, *end, cur_state;
unsigned int buflen = bi->bi_len;
const unsigned int bit = (block % GFS2_NBBY) * GFS2_BIT_SIZE;

byte1 = buf1 + offset + (block / GFS2_NBBY);
end = buf1 + offset + buflen;
byte1 = buf1 + bi->bi_offset + (block / GFS2_NBBY);
end = buf1 + bi->bi_offset + buflen;

BUG_ON(byte1 >= end);

Expand All @@ -110,7 +111,7 @@ static inline void gfs2_setbit(struct gfs2_rgrpd *rgd, unsigned char *buf1,
*byte1 ^= (cur_state ^ new_state) << bit;

if (buf2) {
byte2 = buf2 + offset + (block / GFS2_NBBY);
byte2 = buf2 + bi->bi_offset + (block / GFS2_NBBY);
cur_state = (*byte2 >> bit) & GFS2_BIT_MASK;
*byte2 ^= (cur_state ^ new_state) << bit;
}
Expand Down Expand Up @@ -1370,7 +1371,7 @@ static u64 gfs2_alloc_extent(struct gfs2_rgrpd *rgd, struct gfs2_bitmap *bi,
*n = 0;
buffer = bi->bi_bh->b_data + bi->bi_offset;
gfs2_trans_add_bh(rgd->rd_gl, bi->bi_bh, 1);
gfs2_setbit(rgd, bi->bi_bh->b_data, bi->bi_clone, bi->bi_offset,
gfs2_setbit(rgd, bi->bi_bh->b_data, bi->bi_clone,
bi, blk, dinode ? GFS2_BLKST_DINODE : GFS2_BLKST_USED);
(*n)++;
goal = blk;
Expand All @@ -1381,7 +1382,7 @@ static u64 gfs2_alloc_extent(struct gfs2_rgrpd *rgd, struct gfs2_bitmap *bi,
if (gfs2_testbit(rgd, buffer, bi->bi_len, goal) !=
GFS2_BLKST_FREE)
break;
gfs2_setbit(rgd, bi->bi_bh->b_data, bi->bi_clone, bi->bi_offset,
gfs2_setbit(rgd, bi->bi_bh->b_data, bi->bi_clone,
bi, goal, GFS2_BLKST_USED);
(*n)++;
}
Expand Down Expand Up @@ -1439,7 +1440,7 @@ static struct gfs2_rgrpd *rgblk_free(struct gfs2_sbd *sdp, u64 bstart,
bi->bi_len);
}
gfs2_trans_add_bh(rgd->rd_gl, bi->bi_bh, 1);
gfs2_setbit(rgd, bi->bi_bh->b_data, NULL, bi->bi_offset,
gfs2_setbit(rgd, bi->bi_bh->b_data, NULL,
bi, buf_blk, new_state);
}

Expand Down

0 comments on commit 01b4585

Please sign in to comment.