xfs
[Top] [All Lists]

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

To: xfs@xxxxxxxxxxx
Subject: [PATCH] xfs: add the inode directory type support to XFS_IOC_FSGEOM
From: Mark Tinguely <tinguely@xxxxxxx>
Date: Tue, 17 Sep 2013 09:47:22 -0500
Delivered-to: xfs@xxxxxxxxxxx
References: <20130917144721.917667018@xxxxxxx>
User-agent: quilt/0.51-1
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 */
 
 /*
  * Minimum and maximum sizes need for growth checks.
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;


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