Re: [PATCH] mkfs: make inobtcount visible

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

 



On 1/4/21 5:30 AM, Zorro Lang wrote:
> When set inobtcount=1/0, we can't see it from xfs geometry report.
> So make it visible.
> 
> Signed-off-by: Zorro Lang <zlang@xxxxxxxxxx>

Hi Zorro - thanks for spotting this.

I think the libxfs changes need to hit the kernel first, then we can
pull it in and fix up the report_geom function.  Nothing calls
xfs_fs_geometry directly in userspace, FWIW.

Thanks,
-Eric

> ---
>  libfrog/fsgeom.c | 6 ++++--
>  libxfs/xfs_fs.h  | 1 +
>  libxfs/xfs_sb.c  | 2 ++
>  3 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/libfrog/fsgeom.c b/libfrog/fsgeom.c
> index 14507668..c2b5f265 100644
> --- a/libfrog/fsgeom.c
> +++ b/libfrog/fsgeom.c
> @@ -29,6 +29,7 @@ xfs_report_geom(
>  	int			rmapbt_enabled;
>  	int			reflink_enabled;
>  	int			bigtime_enabled;
> +	int			inobtcnt_enabled;
>  
>  	isint = geo->logstart > 0;
>  	lazycount = geo->flags & XFS_FSOP_GEOM_FLAGS_LAZYSB ? 1 : 0;
> @@ -45,12 +46,13 @@ xfs_report_geom(
>  	rmapbt_enabled = geo->flags & XFS_FSOP_GEOM_FLAGS_RMAPBT ? 1 : 0;
>  	reflink_enabled = geo->flags & XFS_FSOP_GEOM_FLAGS_REFLINK ? 1 : 0;
>  	bigtime_enabled = geo->flags & XFS_FSOP_GEOM_FLAGS_BIGTIME ? 1 : 0;
> +	inobtcnt_enabled = geo->flags & XFS_FSOP_GEOM_FLAGS_INOBTCNT ? 1 : 0;
>  
>  	printf(_(
>  "meta-data=%-22s isize=%-6d agcount=%u, agsize=%u blks\n"
>  "         =%-22s sectsz=%-5u attr=%u, projid32bit=%u\n"
>  "         =%-22s crc=%-8u finobt=%u, sparse=%u, rmapbt=%u\n"
> -"         =%-22s reflink=%-4u bigtime=%u\n"
> +"         =%-22s reflink=%-4u bigtime=%u, inobtcount=%u\n"
>  "data     =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n"
>  "         =%-22s sunit=%-6u swidth=%u blks\n"
>  "naming   =version %-14u bsize=%-6u ascii-ci=%d, ftype=%d\n"
> @@ -60,7 +62,7 @@ xfs_report_geom(
>  		mntpoint, geo->inodesize, geo->agcount, geo->agblocks,
>  		"", geo->sectsize, attrversion, projid32bit,
>  		"", crcs_enabled, finobt_enabled, spinodes, rmapbt_enabled,
> -		"", reflink_enabled, bigtime_enabled,
> +		"", reflink_enabled, bigtime_enabled, inobtcnt_enabled,
>  		"", geo->blocksize, (unsigned long long)geo->datablocks,
>  			geo->imaxpct,
>  		"", geo->sunit, geo->swidth,
> diff --git a/libxfs/xfs_fs.h b/libxfs/xfs_fs.h
> index 2a2e3cfd..6fad140d 100644
> --- a/libxfs/xfs_fs.h
> +++ b/libxfs/xfs_fs.h
> @@ -250,6 +250,7 @@ typedef struct xfs_fsop_resblks {
>  #define XFS_FSOP_GEOM_FLAGS_RMAPBT	(1 << 19) /* reverse mapping btree */
>  #define XFS_FSOP_GEOM_FLAGS_REFLINK	(1 << 20) /* files can share blocks */
>  #define XFS_FSOP_GEOM_FLAGS_BIGTIME	(1 << 21) /* 64-bit nsec timestamps */
> +#define XFS_FSOP_GEOM_FLAGS_INOBTCNT	(1 << 22) /* inobt btree counter */
>  
>  /*
>   * Minimum and maximum sizes need for growth checks.
> diff --git a/libxfs/xfs_sb.c b/libxfs/xfs_sb.c
> index fb2212b8..a5ab0211 100644
> --- a/libxfs/xfs_sb.c
> +++ b/libxfs/xfs_sb.c
> @@ -1145,6 +1145,8 @@ xfs_fs_geometry(
>  		geo->flags |= XFS_FSOP_GEOM_FLAGS_REFLINK;
>  	if (xfs_sb_version_hasbigtime(sbp))
>  		geo->flags |= XFS_FSOP_GEOM_FLAGS_BIGTIME;
> +	if (xfs_sb_version_hasinobtcounts(sbp))
> +		geo->flags |= XFS_FSOP_GEOM_FLAGS_INOBTCNT;
>  	if (xfs_sb_version_hassector(sbp))
>  		geo->logsectsize = sbp->sb_logsectsize;
>  	else
> 



[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