Re: [PATCH 08/49] xfs: introduce xfs_rtalloc_defs.h

Brian Foster
2013-07-24T12:13:16Z

On 07/19/2013 02:24 AM, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> There are quite a few realtime device definitions shared with
> userspace. Move them from xfs_rtalloc.h to xfs_rt_alloc_defs.h
> so we don't need to share xfs_rtalloc.h with userspace anymore.
>
> This removes the final __KERNEL__ region from the XFS kernel
> codebase. Yay!
>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---

Reviewed-by: Brian Foster <bfoster@redhat.com>

> fs/xfs/xfs_format.h | 41 ++++++++++++++++++++++++++++++++++++++++
> fs/xfs/xfs_rtalloc.c | 2 +-
> fs/xfs/xfs_rtalloc.h | 53 ++--------------------------------------------------
> fs/xfs/xfs_types.h | 10 ++++++++++
> 4 files changed, 54 insertions(+), 52 deletions(-)
>
> diff --git a/fs/xfs/xfs_format.h b/fs/xfs/xfs_format.h
> index 2b4f166..6205374 100644
> --- a/fs/xfs/xfs_format.h
> +++ b/fs/xfs/xfs_format.h
> @@ -28,6 +28,47 @@
> */
>
> /*
> + * RealTime Device format definitions
> + */
> +
> +/* Min and max rt extent sizes, specified in bytes */
> +#define XFS_MAX_RTEXTSIZE (1024 * 1024 * 1024) /* 1GB */
> +#define XFS_DFL_RTEXTSIZE (64 * 1024) /* 64kB */
> +#define XFS_MIN_RTEXTSIZE (4 * 1024) /* 4kB */
> +
> +#define XFS_BLOCKSIZE(mp) ((mp)->m_sb.sb_blocksize)
> +#define XFS_BLOCKMASK(mp) ((mp)->m_blockmask)
> +#define XFS_BLOCKWSIZE(mp) ((mp)->m_blockwsize)
> +#define XFS_BLOCKWMASK(mp) ((mp)->m_blockwmask)
> +
> +/*
> + * RT Summary and bit manipulation macros.
> + */
> +#define XFS_SUMOFFS(mp,ls,bb) ((int)((ls) * (mp)->m_sb.sb_rbmblocks + (bb)))
> +#define XFS_SUMOFFSTOBLOCK(mp,s) \
> + (((s) * (uint)sizeof(xfs_suminfo_t)) >> (mp)->m_sb.sb_blocklog)
> +#define XFS_SUMPTR(mp,bp,so) \
> + ((xfs_suminfo_t *)((bp)->b_addr + \
> + (((so) * (uint)sizeof(xfs_suminfo_t)) & XFS_BLOCKMASK(mp))))
> +
> +#define XFS_BITTOBLOCK(mp,bi) ((bi) >> (mp)->m_blkbit_log)
> +#define XFS_BLOCKTOBIT(mp,bb) ((bb) << (mp)->m_blkbit_log)
> +#define XFS_BITTOWORD(mp,bi) \
> + ((int)(((bi) >> XFS_NBWORDLOG) & XFS_BLOCKWMASK(mp)))
> +
> +#define XFS_RTMIN(a,b) ((a) < (b) ? (a) : (b))
> +#define XFS_RTMAX(a,b) ((a) > (b) ? (a) : (b))
> +
> +#define XFS_RTLOBIT(w) xfs_lowbit32(w)
> +#define XFS_RTHIBIT(w) xfs_highbit32(w)
> +
> +#if XFS_BIG_BLKNOS
> +#define XFS_RTBLOCKLOG(b) xfs_highbit64(b)
> +#else
> +#define XFS_RTBLOCKLOG(b) xfs_highbit32(b)
> +#endif
> +
> +/*
> * Dquot and dquot block format definitions
> */
> #define XFS_DQUOT_MAGIC 0x4451 /* 'DQ' */
> diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c
> index 98dc670..5d900ec 100644
> --- a/fs/xfs/xfs_rtalloc.c
> +++ b/fs/xfs/xfs_rtalloc.c
> @@ -17,7 +17,7 @@
> */
> #include "xfs.h"
> #include "xfs_fs.h"
> -#include "xfs_types.h"
> +#include "xfs_format.h"
> #include "xfs_bit.h"
> #include "xfs_log.h"
> #include "xfs_trans.h"
> diff --git a/fs/xfs/xfs_rtalloc.h b/fs/xfs/xfs_rtalloc.h
> index f7f3a35..b2a1a24 100644
> --- a/fs/xfs/xfs_rtalloc.h
> +++ b/fs/xfs/xfs_rtalloc.h
> @@ -18,58 +18,11 @@
> #ifndef __XFS_RTALLOC_H__
> #define __XFS_RTALLOC_H__
>
> +/* kernel only definitions and functions */
> +
> struct xfs_mount;
> struct xfs_trans;
>
> -/* Min and max rt extent sizes, specified in bytes */
> -#define XFS_MAX_RTEXTSIZE (1024 * 1024 * 1024) /* 1GB */
> -#define XFS_DFL_RTEXTSIZE (64 * 1024) /* 64kB */
> -#define XFS_MIN_RTEXTSIZE (4 * 1024) /* 4kB */
> -
> -/*
> - * Constants for bit manipulations.
> - */
> -#define XFS_NBBYLOG 3 /* log2(NBBY) */
> -#define XFS_WORDLOG 2 /* log2(sizeof(xfs_rtword_t)) */
> -#define XFS_NBWORDLOG (XFS_NBBYLOG + XFS_WORDLOG)
> -#define XFS_NBWORD (1 << XFS_NBWORDLOG)
> -#define XFS_WORDMASK ((1 << XFS_WORDLOG) - 1)
> -
> -#define XFS_BLOCKSIZE(mp) ((mp)->m_sb.sb_blocksize)
> -#define XFS_BLOCKMASK(mp) ((mp)->m_blockmask)
> -#define XFS_BLOCKWSIZE(mp) ((mp)->m_blockwsize)
> -#define XFS_BLOCKWMASK(mp) ((mp)->m_blockwmask)
> -
> -/*
> - * Summary and bit manipulation macros.
> - */
> -#define XFS_SUMOFFS(mp,ls,bb) ((int)((ls) * (mp)->m_sb.sb_rbmblocks + (bb)))
> -#define XFS_SUMOFFSTOBLOCK(mp,s) \
> - (((s) * (uint)sizeof(xfs_suminfo_t)) >> (mp)->m_sb.sb_blocklog)
> -#define XFS_SUMPTR(mp,bp,so) \
> - ((xfs_suminfo_t *)((bp)->b_addr + \
> - (((so) * (uint)sizeof(xfs_suminfo_t)) & XFS_BLOCKMASK(mp))))
> -
> -#define XFS_BITTOBLOCK(mp,bi) ((bi) >> (mp)->m_blkbit_log)
> -#define XFS_BLOCKTOBIT(mp,bb) ((bb) << (mp)->m_blkbit_log)
> -#define XFS_BITTOWORD(mp,bi) \
> - ((int)(((bi) >> XFS_NBWORDLOG) & XFS_BLOCKWMASK(mp)))
> -
> -#define XFS_RTMIN(a,b) ((a) < (b) ? (a) : (b))
> -#define XFS_RTMAX(a,b) ((a) > (b) ? (a) : (b))
> -
> -#define XFS_RTLOBIT(w) xfs_lowbit32(w)
> -#define XFS_RTHIBIT(w) xfs_highbit32(w)
> -
> -#if XFS_BIG_BLKNOS
> -#define XFS_RTBLOCKLOG(b) xfs_highbit64(b)
> -#else
> -#define XFS_RTBLOCKLOG(b) xfs_highbit32(b)
> -#endif
> -
> -
> -#ifdef __KERNEL__
> -
> #ifdef CONFIG_XFS_RT
> /*
> * Function prototypes for exported functions.
> @@ -161,6 +114,4 @@ xfs_rtmount_init(
> # define xfs_rtunmount_inodes(m)
> #endif /* CONFIG_XFS_RT */
>
> -#endif /* __KERNEL__ */
> -
> #endif /* __XFS_RTALLOC_H__ */
> diff --git a/fs/xfs/xfs_types.h b/fs/xfs/xfs_types.h
> index 69074ac..781772c 100644
> --- a/fs/xfs/xfs_types.h
> +++ b/fs/xfs/xfs_types.h
> @@ -183,4 +183,14 @@ struct xfs_name {
> */
> typedef __uint32_t xfs_dqid_t;
>
> +/*
> + * Constants for bit manipulations.
> + */
> +#define XFS_NBBYLOG 3 /* log2(NBBY) */
> +#define XFS_WORDLOG 2 /* log2(sizeof(xfs_rtword_t)) */
> +#define XFS_NBWORDLOG (XFS_NBBYLOG + XFS_WORDLOG)
> +#define XFS_NBWORD (1 << XFS_NBWORDLOG)
> +#define XFS_WORDMASK ((1 << XFS_WORDLOG) - 1)
> +
> +
> #endif /* __XFS_TYPES_H__ */