X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=block%2Fblk-settings.c;h=c50ecf0ea3b17c652db8c134905de38e56713851;hb=74779e22261172ea728b989310f6ecc991b57d62;hp=779bb7646bcd13f871dd4ba20862722db699078c;hpb=19bf7f8ac3f8131100027281c495dbbe00cd5ae0;p=deliverable%2Flinux.git diff --git a/block/blk-settings.c b/block/blk-settings.c index 779bb7646bcd..c50ecf0ea3b1 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c @@ -611,7 +611,7 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, bottom = b->discard_granularity + alignment; /* Verify that top and bottom intervals line up */ - if (max(top, bottom) & (min(top, bottom) - 1)) + if ((max(top, bottom) % min(top, bottom)) != 0) t->discard_misaligned = 1; } @@ -619,8 +619,8 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, b->max_discard_sectors); t->discard_granularity = max(t->discard_granularity, b->discard_granularity); - t->discard_alignment = lcm(t->discard_alignment, alignment) & - (t->discard_granularity - 1); + t->discard_alignment = lcm(t->discard_alignment, alignment) % + t->discard_granularity; } return ret;