public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Brian Foster <bfoster@redhat.com>
To: Dave Chinner <david@fromorbit.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH 02/16] xfs: move directory block translatiosn to xfs_da_btree.h
Date: Fri, 23 May 2014 15:05:18 -0400	[thread overview]
Message-ID: <20140523190518.GC8343@laptop.bfoster> (raw)
In-Reply-To: <1400803432-20048-3-git-send-email-david@fromorbit.com>

On Fri, May 23, 2014 at 10:03:38AM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
> 
> Because they aren't actually part of the on-disk format, and so
> shouldn't be in xfs_da_format.h.
> 
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---

Looks straightforward.

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

>  fs/xfs/xfs_da_btree.h  | 137 ++++++++++++++++++++++++++++++++++++++++++++++++
>  fs/xfs/xfs_da_format.c |   1 +
>  fs/xfs/xfs_da_format.h | 138 -------------------------------------------------
>  3 files changed, 138 insertions(+), 138 deletions(-)
> 
> diff --git a/fs/xfs/xfs_da_btree.h b/fs/xfs/xfs_da_btree.h
> index 0ac63ad..6d13fd6 100644
> --- a/fs/xfs/xfs_da_btree.h
> +++ b/fs/xfs/xfs_da_btree.h
> @@ -157,6 +157,143 @@ struct xfs_nameops {
>  };
>  
>  
> +/*
> + * Directory offset/block conversion functions.
> + *
> + * DB blocks here are logical directory block numbers, not filesystem blocks.
> + */
> +
> +/*
> + * Convert dataptr to byte in file space
> + */
> +static inline xfs_dir2_off_t
> +xfs_dir2_dataptr_to_byte(xfs_dir2_dataptr_t dp)
> +{
> +	return (xfs_dir2_off_t)dp << XFS_DIR2_DATA_ALIGN_LOG;
> +}
> +
> +/*
> + * Convert byte in file space to dataptr.  It had better be aligned.
> + */
> +static inline xfs_dir2_dataptr_t
> +xfs_dir2_byte_to_dataptr(xfs_dir2_off_t by)
> +{
> +	return (xfs_dir2_dataptr_t)(by >> XFS_DIR2_DATA_ALIGN_LOG);
> +}
> +
> +/*
> + * Convert byte in space to (DB) block
> + */
> +static inline xfs_dir2_db_t
> +xfs_dir2_byte_to_db(struct xfs_mount *mp, xfs_dir2_off_t by)
> +{
> +	return (xfs_dir2_db_t)
> +		(by >> (mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog));
> +}
> +
> +/*
> + * Convert dataptr to a block number
> + */
> +static inline xfs_dir2_db_t
> +xfs_dir2_dataptr_to_db(struct xfs_mount *mp, xfs_dir2_dataptr_t dp)
> +{
> +	return xfs_dir2_byte_to_db(mp, xfs_dir2_dataptr_to_byte(dp));
> +}
> +
> +/*
> + * Convert byte in space to offset in a block
> + */
> +static inline xfs_dir2_data_aoff_t
> +xfs_dir2_byte_to_off(struct xfs_mount *mp, xfs_dir2_off_t by)
> +{
> +	return (xfs_dir2_data_aoff_t)(by &
> +		((1 << (mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog)) - 1));
> +}
> +
> +/*
> + * Convert dataptr to a byte offset in a block
> + */
> +static inline xfs_dir2_data_aoff_t
> +xfs_dir2_dataptr_to_off(struct xfs_mount *mp, xfs_dir2_dataptr_t dp)
> +{
> +	return xfs_dir2_byte_to_off(mp, xfs_dir2_dataptr_to_byte(dp));
> +}
> +
> +/*
> + * Convert block and offset to byte in space
> + */
> +static inline xfs_dir2_off_t
> +xfs_dir2_db_off_to_byte(struct xfs_mount *mp, xfs_dir2_db_t db,
> +			xfs_dir2_data_aoff_t o)
> +{
> +	return ((xfs_dir2_off_t)db <<
> +		(mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog)) + o;
> +}
> +
> +/*
> + * Convert block (DB) to block (dablk)
> + */
> +static inline xfs_dablk_t
> +xfs_dir2_db_to_da(struct xfs_mount *mp, xfs_dir2_db_t db)
> +{
> +	return (xfs_dablk_t)(db << mp->m_sb.sb_dirblklog);
> +}
> +
> +/*
> + * Convert byte in space to (DA) block
> + */
> +static inline xfs_dablk_t
> +xfs_dir2_byte_to_da(struct xfs_mount *mp, xfs_dir2_off_t by)
> +{
> +	return xfs_dir2_db_to_da(mp, xfs_dir2_byte_to_db(mp, by));
> +}
> +
> +/*
> + * Convert block and offset to dataptr
> + */
> +static inline xfs_dir2_dataptr_t
> +xfs_dir2_db_off_to_dataptr(struct xfs_mount *mp, xfs_dir2_db_t db,
> +			   xfs_dir2_data_aoff_t o)
> +{
> +	return xfs_dir2_byte_to_dataptr(xfs_dir2_db_off_to_byte(mp, db, o));
> +}
> +
> +/*
> + * Convert block (dablk) to block (DB)
> + */
> +static inline xfs_dir2_db_t
> +xfs_dir2_da_to_db(struct xfs_mount *mp, xfs_dablk_t da)
> +{
> +	return (xfs_dir2_db_t)(da >> mp->m_sb.sb_dirblklog);
> +}
> +
> +/*
> + * Convert block (dablk) to byte offset in space
> + */
> +static inline xfs_dir2_off_t
> +xfs_dir2_da_to_byte(struct xfs_mount *mp, xfs_dablk_t da)
> +{
> +	return xfs_dir2_db_off_to_byte(mp, xfs_dir2_da_to_db(mp, da), 0);
> +}
> +
> +/*
> + * Directory tail pointer accessor functions. Based on block geometry.
> + */
> +static inline struct xfs_dir2_block_tail *
> +xfs_dir2_block_tail_p(struct xfs_mount *mp, struct xfs_dir2_data_hdr *hdr)
> +{
> +	return ((struct xfs_dir2_block_tail *)
> +		((char *)hdr + mp->m_dirblksize)) - 1;
> +}
> +
> +static inline struct xfs_dir2_leaf_tail *
> +xfs_dir2_leaf_tail_p(struct xfs_mount *mp, struct xfs_dir2_leaf *lp)
> +{
> +	return (struct xfs_dir2_leaf_tail *)
> +		((char *)lp + mp->m_dirblksize -
> +		  sizeof(struct xfs_dir2_leaf_tail));
> +}
> +
>  /*========================================================================
>   * Function prototypes.
>   *========================================================================*/
> diff --git a/fs/xfs/xfs_da_format.c b/fs/xfs/xfs_da_format.c
> index e6c83e1..22bbc79 100644
> --- a/fs/xfs/xfs_da_format.c
> +++ b/fs/xfs/xfs_da_format.c
> @@ -26,6 +26,7 @@
>  #include "xfs_ag.h"
>  #include "xfs_mount.h"
>  #include "xfs_da_format.h"
> +#include "xfs_da_btree.h"
>  #include "xfs_inode.h"
>  #include "xfs_dir2.h"
>  
> diff --git a/fs/xfs/xfs_da_format.h b/fs/xfs/xfs_da_format.h
> index 1432b57..32b415c 100644
> --- a/fs/xfs/xfs_da_format.h
> +++ b/fs/xfs/xfs_da_format.h
> @@ -514,17 +514,6 @@ struct xfs_dir3_leaf {
>  #define XFS_DIR3_LEAF_CRC_OFF  offsetof(struct xfs_dir3_leaf_hdr, info.crc)
>  
>  /*
> - * Get address of the bestcount field in the single-leaf block.
> - */
> -static inline struct xfs_dir2_leaf_tail *
> -xfs_dir2_leaf_tail_p(struct xfs_mount *mp, struct xfs_dir2_leaf *lp)
> -{
> -	return (struct xfs_dir2_leaf_tail *)
> -		((char *)lp + mp->m_dirblksize -
> -		  sizeof(struct xfs_dir2_leaf_tail));
> -}
> -
> -/*
>   * Get address of the bests array in the single-leaf block.
>   */
>  static inline __be16 *
> @@ -534,123 +523,6 @@ xfs_dir2_leaf_bests_p(struct xfs_dir2_leaf_tail *ltp)
>  }
>  
>  /*
> - * DB blocks here are logical directory block numbers, not filesystem blocks.
> - */
> -
> -/*
> - * Convert dataptr to byte in file space
> - */
> -static inline xfs_dir2_off_t
> -xfs_dir2_dataptr_to_byte(xfs_dir2_dataptr_t dp)
> -{
> -	return (xfs_dir2_off_t)dp << XFS_DIR2_DATA_ALIGN_LOG;
> -}
> -
> -/*
> - * Convert byte in file space to dataptr.  It had better be aligned.
> - */
> -static inline xfs_dir2_dataptr_t
> -xfs_dir2_byte_to_dataptr(xfs_dir2_off_t by)
> -{
> -	return (xfs_dir2_dataptr_t)(by >> XFS_DIR2_DATA_ALIGN_LOG);
> -}
> -
> -/*
> - * Convert byte in space to (DB) block
> - */
> -static inline xfs_dir2_db_t
> -xfs_dir2_byte_to_db(struct xfs_mount *mp, xfs_dir2_off_t by)
> -{
> -	return (xfs_dir2_db_t)
> -		(by >> (mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog));
> -}
> -
> -/*
> - * Convert dataptr to a block number
> - */
> -static inline xfs_dir2_db_t
> -xfs_dir2_dataptr_to_db(struct xfs_mount *mp, xfs_dir2_dataptr_t dp)
> -{
> -	return xfs_dir2_byte_to_db(mp, xfs_dir2_dataptr_to_byte(dp));
> -}
> -
> -/*
> - * Convert byte in space to offset in a block
> - */
> -static inline xfs_dir2_data_aoff_t
> -xfs_dir2_byte_to_off(struct xfs_mount *mp, xfs_dir2_off_t by)
> -{
> -	return (xfs_dir2_data_aoff_t)(by &
> -		((1 << (mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog)) - 1));
> -}
> -
> -/*
> - * Convert dataptr to a byte offset in a block
> - */
> -static inline xfs_dir2_data_aoff_t
> -xfs_dir2_dataptr_to_off(struct xfs_mount *mp, xfs_dir2_dataptr_t dp)
> -{
> -	return xfs_dir2_byte_to_off(mp, xfs_dir2_dataptr_to_byte(dp));
> -}
> -
> -/*
> - * Convert block and offset to byte in space
> - */
> -static inline xfs_dir2_off_t
> -xfs_dir2_db_off_to_byte(struct xfs_mount *mp, xfs_dir2_db_t db,
> -			xfs_dir2_data_aoff_t o)
> -{
> -	return ((xfs_dir2_off_t)db <<
> -		(mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog)) + o;
> -}
> -
> -/*
> - * Convert block (DB) to block (dablk)
> - */
> -static inline xfs_dablk_t
> -xfs_dir2_db_to_da(struct xfs_mount *mp, xfs_dir2_db_t db)
> -{
> -	return (xfs_dablk_t)(db << mp->m_sb.sb_dirblklog);
> -}
> -
> -/*
> - * Convert byte in space to (DA) block
> - */
> -static inline xfs_dablk_t
> -xfs_dir2_byte_to_da(struct xfs_mount *mp, xfs_dir2_off_t by)
> -{
> -	return xfs_dir2_db_to_da(mp, xfs_dir2_byte_to_db(mp, by));
> -}
> -
> -/*
> - * Convert block and offset to dataptr
> - */
> -static inline xfs_dir2_dataptr_t
> -xfs_dir2_db_off_to_dataptr(struct xfs_mount *mp, xfs_dir2_db_t db,
> -			   xfs_dir2_data_aoff_t o)
> -{
> -	return xfs_dir2_byte_to_dataptr(xfs_dir2_db_off_to_byte(mp, db, o));
> -}
> -
> -/*
> - * Convert block (dablk) to block (DB)
> - */
> -static inline xfs_dir2_db_t
> -xfs_dir2_da_to_db(struct xfs_mount *mp, xfs_dablk_t da)
> -{
> -	return (xfs_dir2_db_t)(da >> mp->m_sb.sb_dirblklog);
> -}
> -
> -/*
> - * Convert block (dablk) to byte offset in space
> - */
> -static inline xfs_dir2_off_t
> -xfs_dir2_da_to_byte(struct xfs_mount *mp, xfs_dablk_t da)
> -{
> -	return xfs_dir2_db_off_to_byte(mp, xfs_dir2_da_to_db(mp, da), 0);
> -}
> -
> -/*
>   * Free space block defintions for the node format.
>   */
>  
> @@ -736,16 +608,6 @@ typedef struct xfs_dir2_block_tail {
>  } xfs_dir2_block_tail_t;
>  
>  /*
> - * Pointer to the leaf header embedded in a data block (1-block format)
> - */
> -static inline struct xfs_dir2_block_tail *
> -xfs_dir2_block_tail_p(struct xfs_mount *mp, struct xfs_dir2_data_hdr *hdr)
> -{
> -	return ((struct xfs_dir2_block_tail *)
> -		((char *)hdr + mp->m_dirblksize)) - 1;
> -}
> -
> -/*
>   * Pointer to the leaf entries embedded in a data block (1-block format)
>   */
>  static inline struct xfs_dir2_leaf_entry *
> -- 
> 1.9.0
> 
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2014-05-23 19:05 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-23  0:03 [PATCH 00/16 V2] xfs: introduce struct xfs_da_geometry Dave Chinner
2014-05-23  0:03 ` [PATCH 01/16] xfs: introduce directory geometry structure Dave Chinner
2014-05-23 19:04   ` Brian Foster
2014-05-26  4:28     ` Dave Chinner
2014-05-26 13:29       ` Brian Foster
2014-05-26 21:39         ` Dave Chinner
2014-05-23  0:03 ` [PATCH 02/16] xfs: move directory block translatiosn to xfs_da_btree.h Dave Chinner
2014-05-23 19:05   ` Brian Foster [this message]
2014-05-27 10:46   ` Christoph Hellwig
2014-05-27 23:06     ` Dave Chinner
2014-05-28  5:28       ` Christoph Hellwig
2014-05-28  5:39         ` Dave Chinner
2014-05-23  0:03 ` [PATCH 03/16] xfs: kill XFS_DIR2...FIRSTDB macros Dave Chinner
2014-05-23 19:05   ` Brian Foster
2014-05-27 10:47   ` Christoph Hellwig
2014-05-23  0:03 ` [PATCH 04/16] xfs: convert dir byte/off conversion to xfs_da_geometry Dave Chinner
2014-05-23 19:05   ` Brian Foster
2014-05-23  0:03 ` [PATCH 05/16] xfs: convert directory dablk " Dave Chinner
2014-05-23 19:06   ` Brian Foster
2014-05-26  4:48     ` Dave Chinner
2014-05-23  0:03 ` [PATCH 06/16] xfs: convert directory db " Dave Chinner
2014-05-23 19:07   ` Brian Foster
2014-05-23  0:03 ` [PATCH 07/16] xfs: convert directory segment limits " Dave Chinner
2014-05-23 20:43   ` Brian Foster
2014-05-23  0:03 ` [PATCH 08/16] xfs: convert m_dirblkfsbs " Dave Chinner
2014-05-23 20:43   ` Brian Foster
2014-05-23  0:03 ` [PATCH 09/16] xfs: convert m_dirblksize " Dave Chinner
2014-05-27 15:59   ` Brian Foster
2014-05-23  0:03 ` [PATCH 10/16] xfs: convert dir/attr btree threshold " Dave Chinner
2014-05-27 15:59   ` Brian Foster
2014-05-23  0:03 ` [PATCH 11/16] xfs: move node entry counts " Dave Chinner
2014-05-27 15:59   ` Brian Foster
2014-05-27 23:47     ` Dave Chinner
2014-05-23  0:03 ` [PATCH 12/16] xfs: reduce direct usage of mp->m_dir_geo Dave Chinner
2014-05-27 15:59   ` Brian Foster
2014-05-27 23:53     ` Dave Chinner
2014-05-23  0:03 ` [PATCH 13/16] xfs: remove mp->m_dir_geo from directory logging Dave Chinner
2014-05-27 16:00   ` Brian Foster
2014-05-23  0:03 ` [PATCH 14/16] xfs: use xfs_da_geometry for block size in attr code Dave Chinner
2014-05-27 16:01   ` Brian Foster
2014-05-23  0:03 ` [PATCH 15/16] xfs: pass xfs_da_args to xfs_attr_leaf_newentsize Dave Chinner
2014-05-27 16:01   ` Brian Foster
2014-05-23  0:03 ` [PATCH 16/16] xfs: repalce attr LBSIZE with xfs_da_geometry Dave Chinner
2014-05-27 16:01   ` Brian Foster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140523190518.GC8343@laptop.bfoster \
    --to=bfoster@redhat.com \
    --cc=david@fromorbit.com \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox