Re: [PATCH 51/50] xfs: add xfs sb v4 support for dirent filetype field

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux