On Mon, Aug 19, 2013 at 03:19:36PM -0500, Mark Tinguely wrote: > Add XFS superblock v4 support for the file type field in the > directory entry feature. > > This support adds a feature bit for version 4 superblocks and > leaves the original superblock 5 incompatibility bit. > > Signed-off-by: Mark Tinguely <tinguely@xxxxxxx> > --- > fs/xfs/xfs_sb.h | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > Index: b/fs/xfs/xfs_sb.h > =================================================================== > --- a/fs/xfs/xfs_sb.h > +++ b/fs/xfs/xfs_sb.h > @@ -84,11 +84,13 @@ struct xfs_trans; > #define XFS_SB_VERSION2_PARENTBIT 0x00000010 /* parent pointers */ > #define XFS_SB_VERSION2_PROJID32BIT 0x00000080 /* 32 bit project id */ > #define XFS_SB_VERSION2_CRCBIT 0x00000100 /* metadata CRCs */ > +#define XFS_SB_VERSION2_FTYPE 0x00000200 /* inode type in dir */ > > #define XFS_SB_VERSION2_OKREALFBITS \ > (XFS_SB_VERSION2_LAZYSBCOUNTBIT | \ > XFS_SB_VERSION2_ATTR2BIT | \ > - XFS_SB_VERSION2_PROJID32BIT) > + XFS_SB_VERSION2_PROJID32BIT | \ > + XFS_SB_VERSION2_FTYPE) > #define XFS_SB_VERSION2_OKSASHFBITS \ > (0) > #define XFS_SB_VERSION2_OKREALBITS \ > @@ -631,8 +633,10 @@ static inline int xfs_sb_version_has_pqu > > static inline int xfs_sb_version_hasftype(struct xfs_sb *sbp) > { > - return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 && > - xfs_sb_has_incompat_feature(sbp, XFS_SB_FEAT_INCOMPAT_FTYPE); > + return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 && > + xfs_sb_has_incompat_feature(sbp, XFS_SB_FEAT_INCOMPAT_FTYPE)) || > + (xfs_sb_version_hasmorebits(sbp) && > + (sbp->sb_features2 & XFS_SB_VERSION2_FTYPE)); > } Ok, that's the 5 lines of kernel code I mentioned it would take to enable it. Like I said, the code to enable it is the simple part. There's a fair bit more to getting it into releaseable state, though: - XFS_IOC_FSGEOM support to export the feature bit to userspace. It needs to be consistent across v4/v5 filesystems, too. - xfs_db support: - needs to understand the feature bit in the version command - both v4/v5 need to output the new feature bit text to say it's enabled - all the dtype stuff is plumbed directly into the v3 directory decoding, not the v2 directory decoding. New display fields will have to be added to the v2 directory decoding and display made conditional on the XFS_SB_VERSION2_FTYPE bit being set. - xfs_info needs to output the state of support, consistent for v4/v5 - mkfs.xfs needs a new command line option to turn the feature on, new output to indicate it's state. output needs to be consistent for v4/v5, but the command line option is only valid for v4 superblock filesystems Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs