xfs
[Top] [All Lists]

Re: [PATCH 8/9] xfs: add fsgeom flag for v5 superblock support.

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 8/9] xfs: add fsgeom flag for v5 superblock support.
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Wed, 29 May 2013 10:10:13 -0500
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1369636707-15150-9-git-send-email-david@xxxxxxxxxxxxx>
References: <1369636707-15150-1-git-send-email-david@xxxxxxxxxxxxx> <1369636707-15150-9-git-send-email-david@xxxxxxxxxxxxx>
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
On 5/27/13 1:38 AM, Dave Chinner wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
> 
> Currently userspace has no way of determining that a filesystem is
> CRC enabled. Add a flag to the XFS_IOC_FSGEOMETRY ioctl output to
> indicate that the filesystem has v5 superblock support enabled.
> This will allow xfs_info to correctly report the state of the
> filesystem.


Looks fine,

Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>

Ben, having this in place for for the next point release will let
userspace work & testing proceed w/o the need for a patched
kernel... if you could consider pulling it in that'd be great.

Dave, just out of curiosity, most other features sort of match between
the "_has_*" and the flag names, is there a reason for the
crc <-> sbv5 difference?  Just semantics, but just curious.

(i.e. xfs_sb_version_hasprojid32bit checks XFS_SB_VERSION2_PROJID32BIT,
but xfs_sb_version_hascrc checks XFS_SB_VERSION_5)

Answering my own question maybe, I guess SB_VERSION_5 was conceived
with crc already in place, so there's no need for a feature flag on
top of the sb version, right...?

-Eric 

> Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
> ---
>  fs/xfs/xfs_fs.h    |    1 +
>  fs/xfs/xfs_fsops.c |    4 +++-
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/xfs/xfs_fs.h b/fs/xfs/xfs_fs.h
> index 6dda3f9..d046955 100644
> --- a/fs/xfs/xfs_fs.h
> +++ b/fs/xfs/xfs_fs.h
> @@ -236,6 +236,7 @@ typedef struct xfs_fsop_resblks {
>  #define XFS_FSOP_GEOM_FLAGS_PROJID32 0x0800  /* 32-bit project IDs   */
>  #define XFS_FSOP_GEOM_FLAGS_DIRV2CI  0x1000  /* ASCII only CI names  */
>  #define XFS_FSOP_GEOM_FLAGS_LAZYSB   0x4000  /* lazy superblock counters */
> +#define XFS_FSOP_GEOM_FLAGS_V5SB     0x8000  /* version 5 superblock */
>  
>  
>  /*
> diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c
> index 87595b2..3c3644e 100644
> --- a/fs/xfs/xfs_fsops.c
> +++ b/fs/xfs/xfs_fsops.c
> @@ -99,7 +99,9 @@ xfs_fs_geometry(
>                       (xfs_sb_version_hasattr2(&mp->m_sb) ?
>                               XFS_FSOP_GEOM_FLAGS_ATTR2 : 0) |
>                       (xfs_sb_version_hasprojid32bit(&mp->m_sb) ?
> -                             XFS_FSOP_GEOM_FLAGS_PROJID32 : 0);
> +                             XFS_FSOP_GEOM_FLAGS_PROJID32 : 0) |
> +                     (xfs_sb_version_hascrc(&mp->m_sb) ?
> +                             XFS_FSOP_GEOM_FLAGS_V5SB : 0);
>               geo->logsectsize = xfs_sb_version_hassector(&mp->m_sb) ?
>                               mp->m_sb.sb_logsectsize : BBSIZE;
>               geo->rtsectsize = mp->m_sb.sb_blocksize;
> 

<Prev in Thread] Current Thread [Next in Thread>