Re: [PATCH 11/45] FIXUP: xfs: define the zoned on-disk format

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

 



On Wed, Apr 09, 2025 at 08:47:15AM -0700, Darrick J. Wong wrote:
> On Wed, Apr 09, 2025 at 09:55:14AM +0200, Christoph Hellwig wrote:
> 
> No SoB?
> 
> Eh whatever it's going to get folded into the previous patch anyway so
> Reviewed-by: "Darrick J. Wong" <djwong@xxxxxxxxxx>
> 
> --D
> 
> > ---
> >  include/xfs_inode.h |  6 ++++++
> >  include/xfs_mount.h | 12 ++++++++++--
> >  2 files changed, 16 insertions(+), 2 deletions(-)
> > 
> > diff --git a/include/xfs_inode.h b/include/xfs_inode.h
> > index 5bb31eb4aa53..efef0da636d1 100644
> > --- a/include/xfs_inode.h
> > +++ b/include/xfs_inode.h
> > @@ -234,6 +234,7 @@ typedef struct xfs_inode {
> >  	xfs_extlen_t		i_extsize;	/* basic/minimum extent size */
> >  	/* cowextsize is only used for v3 inodes, flushiter for v1/2 */
> >  	union {
> > +		uint32_t	i_used_blocks;

And only now did I notice the missing comment  ^^; can this add

"i_used_blocks is used for zoned rtrmap inodes"

from the kernel?

--D

> >  		xfs_extlen_t	i_cowextsize;	/* basic cow extent size */
> >  		uint16_t	i_flushiter;	/* incremented on flush */
> >  	};
> > @@ -361,6 +362,11 @@ static inline xfs_fsize_t XFS_ISIZE(struct xfs_inode *ip)
> >  }
> >  #define XFS_IS_REALTIME_INODE(ip) ((ip)->i_diflags & XFS_DIFLAG_REALTIME)
> >  
> > +static inline bool xfs_is_zoned_inode(struct xfs_inode *ip)
> > +{
> > +	return xfs_has_zoned(ip->i_mount) && XFS_IS_REALTIME_INODE(ip);
> > +}
> > +
> >  /* inode link counts */
> >  static inline void set_nlink(struct inode *inode, uint32_t nlink)
> >  {
> > diff --git a/include/xfs_mount.h b/include/xfs_mount.h
> > index 0acf952eb9d7..7856acfb9f8e 100644
> > --- a/include/xfs_mount.h
> > +++ b/include/xfs_mount.h
> > @@ -207,6 +207,7 @@ typedef struct xfs_mount {
> >  #define XFS_FEAT_NREXT64	(1ULL << 26)	/* large extent counters */
> >  #define XFS_FEAT_EXCHANGE_RANGE	(1ULL << 27)	/* exchange range */
> >  #define XFS_FEAT_METADIR	(1ULL << 28)	/* metadata directory tree */
> > +#define XFS_FEAT_ZONED		(1ULL << 29)	/* zoned RT device */
> >  
> >  #define __XFS_HAS_FEAT(name, NAME) \
> >  static inline bool xfs_has_ ## name (const struct xfs_mount *mp) \
> > @@ -253,7 +254,7 @@ __XFS_HAS_FEAT(needsrepair, NEEDSREPAIR)
> >  __XFS_HAS_FEAT(large_extent_counts, NREXT64)
> >  __XFS_HAS_FEAT(exchange_range, EXCHANGE_RANGE)
> >  __XFS_HAS_FEAT(metadir, METADIR)
> > -
> > +__XFS_HAS_FEAT(zoned, ZONED)
> >  
> >  static inline bool xfs_has_rtgroups(const struct xfs_mount *mp)
> >  {
> > @@ -264,7 +265,9 @@ static inline bool xfs_has_rtgroups(const struct xfs_mount *mp)
> >  static inline bool xfs_has_rtsb(const struct xfs_mount *mp)
> >  {
> >  	/* all rtgroups filesystems with an rt section have an rtsb */
> > -	return xfs_has_rtgroups(mp) && xfs_has_realtime(mp);
> > +	return xfs_has_rtgroups(mp) &&
> > +		xfs_has_realtime(mp) &&
> > +		!xfs_has_zoned(mp);
> >  }
> >  
> >  static inline bool xfs_has_rtrmapbt(const struct xfs_mount *mp)
> > @@ -279,6 +282,11 @@ static inline bool xfs_has_rtreflink(const struct xfs_mount *mp)
> >  	       xfs_has_reflink(mp);
> >  }
> >  
> > +static inline bool xfs_has_nonzoned(const struct xfs_mount *mp)
> > +{
> > +	return !xfs_has_zoned(mp);
> > +}
> > +
> >  /* Kernel mount features that we don't support */
> >  #define __XFS_UNSUPP_FEAT(name) \
> >  static inline bool xfs_has_ ## name (const struct xfs_mount *mp) \
> > -- 
> > 2.47.2
> > 
> > 
> 




[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