[PATCH] xfs: add the inode directory type support to XFS_IOC_FSGEOM
Dave Chinner
david at fromorbit.com
Wed Sep 18 16:54:45 CDT 2013
On Tue, Sep 17, 2013 at 09:47:22AM -0500, Mark Tinguely wrote:
> Signed-off-by: Mark Tinguely <tinguely at sgi.com>
> ---
> 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 at fromorbit.com
More information about the xfs
mailing list