Re: [PATCH] xfs_db: print freecount in xfs_inobt_rec as unsigned

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 24, 2018 at 05:20:08PM -0500, Eric Sandeen wrote:
> "freecount" in the xfs_inobt_rec is unsigned, so xfs_db should
> print it as such.
> 
> Not doing so tickles a bug in getbitval() where we try to handle
> sign extension for signed fields and fail badly on big endian
> machines, causing us to incorrectly report negative numbers when
> printing structures even when the number is nowhere near the
> signed maximum value.
> 
> So this fix works around that bug by properly marking this field
> as unsigned, because I have yet to convince myself of the proper
> fix for the underlying bug.
> 
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=201453
> Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>

Looks ok,
Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>

--D

> ---
> 
> diff --git a/db/btblock.c b/db/btblock.c
> index cbd2990..5a5b061 100644
> --- a/db/btblock.c
> +++ b/db/btblock.c
> @@ -513,7 +513,7 @@ const field_t	inobt_sprec_flds[] = {
>  	{ "holemask", FLDT_UINT16X, OI(ROFF(ir_u.sp.ir_holemask)), C1, 0,
>  	  TYP_NONE },
>  	{ "count", FLDT_UINT8D, OI(ROFF(ir_u.sp.ir_count)), C1, 0, TYP_NONE },
> -	{ "freecount", FLDT_INT8D, OI(ROFF(ir_u.sp.ir_freecount)), C1, 0,
> +	{ "freecount", FLDT_UINT8D, OI(ROFF(ir_u.sp.ir_freecount)), C1, 0,
>  	  TYP_NONE },
>  	{ "free", FLDT_INOFREE, OI(ROFF(ir_free)), C1, 0, TYP_NONE },
>  	{ NULL }
> 



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux