xfs
[Top] [All Lists]

Re: [PATCH] xfs: add the inode directory type support to XFS_IOC_FSGEOM

To: Mark Tinguely <tinguely@xxxxxxx>
Subject: Re: [PATCH] xfs: add the inode directory type support to XFS_IOC_FSGEOM
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Thu, 19 Sep 2013 07:54:45 +1000
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20130917144733.819109222@xxxxxxx>
References: <20130917144721.917667018@xxxxxxx> <20130917144733.819109222@xxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Tue, Sep 17, 2013 at 09:47:22AM -0500, Mark Tinguely wrote:
> Signed-off-by: Mark Tinguely <tinguely@xxxxxxx>
> ---
>  fs/xfs/xfs_fs.h    |   32 ++++++++++++++++----------------
>  fs/xfs/xfs_fsops.c |    4 +++-
>  2 files changed, 19 insertions(+), 17 deletions(-)
> 
> Index: b/fs/xfs/xfs_fs.h
> ===================================================================
> --- a/fs/xfs/xfs_fs.h
> +++ b/fs/xfs/xfs_fs.h
> @@ -222,22 +222,22 @@ typedef struct xfs_fsop_resblks {
>  
>  #define XFS_FSOP_GEOM_VERSION        0
>  
> -#define XFS_FSOP_GEOM_FLAGS_ATTR     0x0001  /* attributes in use    */
> -#define XFS_FSOP_GEOM_FLAGS_NLINK    0x0002  /* 32-bit nlink values  */
> -#define XFS_FSOP_GEOM_FLAGS_QUOTA    0x0004  /* quotas enabled       */
> -#define XFS_FSOP_GEOM_FLAGS_IALIGN   0x0008  /* inode alignment      */
> -#define XFS_FSOP_GEOM_FLAGS_DALIGN   0x0010  /* large data alignment */
> -#define XFS_FSOP_GEOM_FLAGS_SHARED   0x0020  /* read-only shared     */
> -#define XFS_FSOP_GEOM_FLAGS_EXTFLG   0x0040  /* special extent flag  */
> -#define XFS_FSOP_GEOM_FLAGS_DIRV2    0x0080  /* directory version 2  */
> -#define XFS_FSOP_GEOM_FLAGS_LOGV2    0x0100  /* log format version 2 */
> -#define XFS_FSOP_GEOM_FLAGS_SECTOR   0x0200  /* sector sizes >1BB    */
> -#define XFS_FSOP_GEOM_FLAGS_ATTR2    0x0400  /* inline attributes rework */
> -#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 */
> -
> +#define XFS_FSOP_GEOM_FLAGS_ATTR     0x00001 /* attributes in use    */
> +#define XFS_FSOP_GEOM_FLAGS_NLINK    0x00002 /* 32-bit nlink values  */
> +#define XFS_FSOP_GEOM_FLAGS_QUOTA    0x00004 /* quotas enabled       */
> +#define XFS_FSOP_GEOM_FLAGS_IALIGN   0x00008 /* inode alignment      */
> +#define XFS_FSOP_GEOM_FLAGS_DALIGN   0x00010 /* large data alignment */
> +#define XFS_FSOP_GEOM_FLAGS_SHARED   0x00020 /* read-only shared     */
> +#define XFS_FSOP_GEOM_FLAGS_EXTFLG   0x00040 /* special extent flag  */
> +#define XFS_FSOP_GEOM_FLAGS_DIRV2    0x00080 /* directory version 2  */
> +#define XFS_FSOP_GEOM_FLAGS_LOGV2    0x00100 /* log format version 2 */
> +#define XFS_FSOP_GEOM_FLAGS_SECTOR   0x00200 /* sector sizes >1BB    */
> +#define XFS_FSOP_GEOM_FLAGS_ATTR2    0x00400 /* inline attributes rework */
> +#define XFS_FSOP_GEOM_FLAGS_PROJID32 0x00800 /* 32-bit project IDs   */
> +#define XFS_FSOP_GEOM_FLAGS_DIRV2CI  0x01000 /* ASCII only CI names  */
> +#define XFS_FSOP_GEOM_FLAGS_LAZYSB   0x04000 /* lazy superblock counters */
> +#define XFS_FSOP_GEOM_FLAGS_V5SB     0x08000 /* version 5 superblock */
> +#define XFS_FSOP_GEOM_FLAGS_FTYPE    0x10000 /* inode directory types */

There is no need to do this. Can you drop these hunks as this simply
adds more work to synchronise with userspace.

> Index: b/fs/xfs/xfs_fsops.c
> ===================================================================
> --- a/fs/xfs/xfs_fsops.c
> +++ b/fs/xfs/xfs_fsops.c
> @@ -101,7 +101,9 @@ xfs_fs_geometry(
>                       (xfs_sb_version_hasprojid32bit(&mp->m_sb) ?
>                               XFS_FSOP_GEOM_FLAGS_PROJID32 : 0) |
>                       (xfs_sb_version_hascrc(&mp->m_sb) ?
> -                             XFS_FSOP_GEOM_FLAGS_V5SB : 0);
> +                             XFS_FSOP_GEOM_FLAGS_V5SB : 0) |
> +                     (xfs_sb_version_hasftype(&mp->m_sb) ?
> +                             XFS_FSOP_GEOM_FLAGS_FTYPE : 0);
>               geo->logsectsize = xfs_sb_version_hassector(&mp->m_sb) ?
>                               mp->m_sb.sb_logsectsize : BBSIZE;
>               geo->rtsectsize = mp->m_sb.sb_blocksize;

That looks good - can you post the patches to userspace that use
this so we can test it properly?

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

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