Add a mount feature bit for CRC enabled filesystems
PATCH 3/4 Add a mount feature bit for CRC enabled filesystems
Signed-off-by Dave Chinner <[email protected]>
fs/xfs/Kconfig +1 -1
@@ -1,6 +1,6 @@ config XFS_FS tristate "XFS filesystem support" - depends on BLOCK + depends on BLOCK && LIBCRC32C help XFS is a high performance journaling filesystem which originated on the SGI IRIX platform. It is completely multi-threaded, can
fs/xfs/linux-2.6/xfs_linux.h +1 -0
@@ -77,6 +77,7 @@#include <linux/spinlock.h> #include <linux/random.h> #include <linux/ctype.h> +#include <linux/crc32c.h> #include <asm/page.h> #include <asm/div64.h>
fs/xfs/xfs_sb.h +9 -1
@@ -79,10 +79,12 @@ struct xfs_mount;#define XFS_SB_VERSION2_LAZYSBCOUNTBIT 0x00000002/* Superblk counters */ #define XFS_SB_VERSION2_RESERVED4BIT 0x00000004#define XFS_SB_VERSION2_ATTR2BIT 0x00000008/* Inline attr rework */ +#define XFS_SB_VERSION2_CRCBIT 0x00000020/* metadata has CRCs */ #define XFS_SB_VERSION2_OKREALFBITS \ (XFS_SB_VERSION2_LAZYSBCOUNTBIT | \ - XFS_SB_VERSION2_ATTR2BIT) + XFS_SB_VERSION2_ATTR2BIT | \ + XFS_SB_VERSION2_CRCBIT)#define XFS_SB_VERSION2_OKSASHFBITS \ (0)#define XFS_SB_VERSION2_OKREALBITS \
@@ -494,6 +496,12 @@ static inline void xfs_sb_version_remove sbp->sb_versionnum &= ~XFS_SB_VERSION_MOREBITSBIT ; } +static inline int xfs_sb_version_hascrc (xfs_sb_t *sbp) +{ +return (xfs_sb_version_hasmorebits (sbp) && + (sbp->sb_features2 &XFS_SB_VERSION2_CRCBIT )); +} +/* * end of superblock version macros */