2011-10-02 17:26:50

by Luk Claes

[permalink] [raw]
Subject: [PATCH] blkmapd: Use getconf(_SC_PAGE_SIZE)

PAGE_SIZE is not exported by all architectures as it is not fixed: it can depend on the model of the machine. So it's better to query the system configuration for the actual page size on the machine.

Signed-off-by: Luk Claes <[email protected]>
---
utils/blkmapd/device-process.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/utils/blkmapd/device-process.c b/utils/blkmapd/device-process.c
index 27ff374..652a7a8 100644
--- a/utils/blkmapd/device-process.c
+++ b/utils/blkmapd/device-process.c
@@ -296,7 +296,7 @@ decode_blk_volume(uint32_t **pp, uint32_t *end, struct bl_volume *vols, int voln
off_t stripe_unit = vol->param.bv_stripe_unit;
/* Check limitations imposed by device-mapper */
if ((stripe_unit & (stripe_unit - 1)) != 0
- || stripe_unit < (off_t) (PAGE_SIZE >> 9))
+ || stripe_unit < (off_t) (sysconf(_SC_PAGE_SIZE) >> 9))
return -EIO;
BLK_READBUF(p, end, 4);
READ32(vol->bv_vol_n);
--
1.7.6.3



2011-10-03 12:54:48

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH] blkmapd: Use getconf(_SC_PAGE_SIZE)



On 10/02/2011 01:27 PM, Luk Claes wrote:
> PAGE_SIZE is not exported by all architectures as it is not fixed: it can depend on the model of the machine. So it's better to query the system configuration for the actual page size on the machine.
>
> Signed-off-by: Luk Claes <[email protected]>
Committed...

steved.
> ---
> utils/blkmapd/device-process.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/utils/blkmapd/device-process.c b/utils/blkmapd/device-process.c
> index 27ff374..652a7a8 100644
> --- a/utils/blkmapd/device-process.c
> +++ b/utils/blkmapd/device-process.c
> @@ -296,7 +296,7 @@ decode_blk_volume(uint32_t **pp, uint32_t *end, struct bl_volume *vols, int voln
> off_t stripe_unit = vol->param.bv_stripe_unit;
> /* Check limitations imposed by device-mapper */
> if ((stripe_unit & (stripe_unit - 1)) != 0
> - || stripe_unit < (off_t) (PAGE_SIZE >> 9))
> + || stripe_unit < (off_t) (sysconf(_SC_PAGE_SIZE) >> 9))
> return -EIO;
> BLK_READBUF(p, end, 4);
> READ32(vol->bv_vol_n);