Re: [DRBD-user] [patch -resend] drbd: fix resync_dump_detail() output

Lars Ellenberg
2012-06-08T18:50:08Z

On Fri, Jun 08, 2012 at 03:31:28PM +0300, Dan Carpenter wrote:
> The tests here aren't correct. It should be doing a shift before doing
> the bitwise AND. (bme->flags & BME_NO_WRITES) is always false and
> (bme->flags & BME_LOCKED) checks for BME_NO_WRITES instead of checking
> for locked.
>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Ack.

> ---
> I sent this to the drbd-user list in March, but never recieved a
> response.

Sorry, seems to have been lost :-(

Lars

> diff --git a/drivers/block/drbd/drbd_proc.c b/drivers/block/drbd/drbd_proc.c
> index 2959cdf..ffe1ee4 100644
> --- a/drivers/block/drbd/drbd_proc.c
> +++ b/drivers/block/drbd/drbd_proc.c
> @@ -187,8 +187,10 @@ static void resync_dump_detail(struct seq_file *seq, struct lc_element *e)
> struct bm_extent *bme = lc_entry(e, struct bm_extent, lce);
>
> seq_printf(seq, "%5d %s %s\n", bme->rs_left,
> - bme->flags & BME_NO_WRITES ? "NO_WRITES" : "---------",
> - bme->flags & BME_LOCKED ? "LOCKED" : "------"
> + test_bit(BME_NO_WRITES, &bme->flags) ?
> + "NO_WRITES" : "---------",
> + test_bit(BME_LOCKED, &bme->flags) ?
> + "LOCKED" : "------"
> );
> }

--
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com