Re: [PATCH 4/7] xfs: uninline xfs_get_extsz_hint

Eric Sandeen
2009-11-19T04:51:00Z

Christoph Hellwig wrote:

> This function is too large to efficiently be inlined.

Just out of curiosity; too how do you define too large?

-Eric

> Signed-off-by: Christoph Hellwig <hch@lst.de>
>
> Index: xfs/fs/xfs/xfs_rw.c
> ===================================================================
> --- xfs.orig/fs/xfs/xfs_rw.c 2009-11-12 17:14:15.278004428 +0100
> +++ xfs/fs/xfs/xfs_rw.c 2009-11-12 17:18:33.311004263 +0100
> @@ -336,3 +336,25 @@ xfs_bwrite(
> }
> return (error);
> }
> +
> +/*
> + * helper function to extract extent size hint from inode
> + */
> +xfs_extlen_t
> +xfs_get_extsz_hint(
> + struct xfs_inode *ip)
> +{
> + xfs_extlen_t extsz;
> +
> + if (unlikely(XFS_IS_REALTIME_INODE(ip))) {
> + extsz = (ip->i_d.di_flags & XFS_DIFLAG_EXTSIZE)
> + ? ip->i_d.di_extsize
> + : ip->i_mount->m_sb.sb_rextsize;
> + ASSERT(extsz);
> + } else {
> + extsz = (ip->i_d.di_flags & XFS_DIFLAG_EXTSIZE)
> + ? ip->i_d.di_extsize : 0;
> + }
> +
> + return extsz;
> +}
> Index: xfs/fs/xfs/xfs_rw.h
> ===================================================================
> --- xfs.orig/fs/xfs/xfs_rw.h 2009-11-09 17:06:46.116004228 +0100
> +++ xfs/fs/xfs/xfs_rw.h 2009-11-12 17:18:33.311004263 +0100
> @@ -37,27 +37,6 @@ xfs_fsb_to_db(struct xfs_inode *ip, xfs_
> }
>
> /*
> - * helper function to extract extent size hint from inode
> - */
> -STATIC_INLINE xfs_extlen_t
> -xfs_get_extsz_hint(
> - xfs_inode_t *ip)
> -{
> - xfs_extlen_t extsz;
> -
> - if (unlikely(XFS_IS_REALTIME_INODE(ip))) {
> - extsz = (ip->i_d.di_flags & XFS_DIFLAG_EXTSIZE)
> - ? ip->i_d.di_extsize
> - : ip->i_mount->m_sb.sb_rextsize;
> - ASSERT(extsz);
> - } else {
> - extsz = (ip->i_d.di_flags & XFS_DIFLAG_EXTSIZE)
> - ? ip->i_d.di_extsize : 0;
> - }
> - return extsz;
> -}
> -
> -/*
> * Prototypes for functions in xfs_rw.c.
> */
> extern int xfs_write_clear_setuid(struct xfs_inode *ip);
> @@ -69,5 +48,6 @@ extern int xfs_read_buf(struct xfs_mount
> struct xfs_buf **bpp);
> extern void xfs_ioerror_alert(char *func, struct xfs_mount *mp,
> xfs_buf_t *bp, xfs_daddr_t blkno);
> +extern xfs_extlen_t xfs_get_extsz_hint(struct xfs_inode *ip);
>
> #endif /* __XFS_RW_H__ */
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs