mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
xfs: hoist extent size helpers to libxfs
Move the extent size helpers to xfs_bmap.c in libxfs since they're used there already. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
d76e137057
commit
acdddbe168
@ -6454,3 +6454,45 @@ xfs_bmap_query_all(
|
||||
|
||||
return xfs_btree_query_all(cur, xfs_bmap_query_range_helper, &query);
|
||||
}
|
||||
|
||||
/* Helper function to extract extent size hint from inode */
|
||||
xfs_extlen_t
|
||||
xfs_get_extsz_hint(
|
||||
struct xfs_inode *ip)
|
||||
{
|
||||
/*
|
||||
* No point in aligning allocations if we need to COW to actually
|
||||
* write to them.
|
||||
*/
|
||||
if (xfs_is_always_cow_inode(ip))
|
||||
return 0;
|
||||
if ((ip->i_diflags & XFS_DIFLAG_EXTSIZE) && ip->i_extsize)
|
||||
return ip->i_extsize;
|
||||
if (XFS_IS_REALTIME_INODE(ip) &&
|
||||
ip->i_mount->m_sb.sb_rextsize > 1)
|
||||
return ip->i_mount->m_sb.sb_rextsize;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Helper function to extract CoW extent size hint from inode.
|
||||
* Between the extent size hint and the CoW extent size hint, we
|
||||
* return the greater of the two. If the value is zero (automatic),
|
||||
* use the default size.
|
||||
*/
|
||||
xfs_extlen_t
|
||||
xfs_get_cowextsz_hint(
|
||||
struct xfs_inode *ip)
|
||||
{
|
||||
xfs_extlen_t a, b;
|
||||
|
||||
a = 0;
|
||||
if (ip->i_diflags2 & XFS_DIFLAG2_COWEXTSIZE)
|
||||
a = ip->i_cowextsize;
|
||||
b = xfs_get_extsz_hint(ip);
|
||||
|
||||
a = max(a, b);
|
||||
if (a == 0)
|
||||
return XFS_DEFAULT_COWEXTSZ_HINT;
|
||||
return a;
|
||||
}
|
||||
|
@ -296,4 +296,7 @@ typedef int (*xfs_bmap_query_range_fn)(
|
||||
int xfs_bmap_query_all(struct xfs_btree_cur *cur, xfs_bmap_query_range_fn fn,
|
||||
void *priv);
|
||||
|
||||
xfs_extlen_t xfs_get_extsz_hint(struct xfs_inode *ip);
|
||||
xfs_extlen_t xfs_get_cowextsz_hint(struct xfs_inode *ip);
|
||||
|
||||
#endif /* __XFS_BMAP_H__ */
|
||||
|
@ -46,50 +46,6 @@
|
||||
|
||||
struct kmem_cache *xfs_inode_cache;
|
||||
|
||||
/*
|
||||
* helper function to extract extent size hint from inode
|
||||
*/
|
||||
xfs_extlen_t
|
||||
xfs_get_extsz_hint(
|
||||
struct xfs_inode *ip)
|
||||
{
|
||||
/*
|
||||
* No point in aligning allocations if we need to COW to actually
|
||||
* write to them.
|
||||
*/
|
||||
if (xfs_is_always_cow_inode(ip))
|
||||
return 0;
|
||||
if ((ip->i_diflags & XFS_DIFLAG_EXTSIZE) && ip->i_extsize)
|
||||
return ip->i_extsize;
|
||||
if (XFS_IS_REALTIME_INODE(ip) &&
|
||||
ip->i_mount->m_sb.sb_rextsize > 1)
|
||||
return ip->i_mount->m_sb.sb_rextsize;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Helper function to extract CoW extent size hint from inode.
|
||||
* Between the extent size hint and the CoW extent size hint, we
|
||||
* return the greater of the two. If the value is zero (automatic),
|
||||
* use the default size.
|
||||
*/
|
||||
xfs_extlen_t
|
||||
xfs_get_cowextsz_hint(
|
||||
struct xfs_inode *ip)
|
||||
{
|
||||
xfs_extlen_t a, b;
|
||||
|
||||
a = 0;
|
||||
if (ip->i_diflags2 & XFS_DIFLAG2_COWEXTSIZE)
|
||||
a = ip->i_cowextsize;
|
||||
b = xfs_get_extsz_hint(ip);
|
||||
|
||||
a = max(a, b);
|
||||
if (a == 0)
|
||||
return XFS_DEFAULT_COWEXTSZ_HINT;
|
||||
return a;
|
||||
}
|
||||
|
||||
/*
|
||||
* These two are wrapper routines around the xfs_ilock() routine used to
|
||||
* centralize some grungy code. They are used in places that wish to lock the
|
||||
|
@ -563,9 +563,6 @@ int xfs_iflush_cluster(struct xfs_buf *);
|
||||
void xfs_lock_two_inodes(struct xfs_inode *ip0, uint ip0_mode,
|
||||
struct xfs_inode *ip1, uint ip1_mode);
|
||||
|
||||
xfs_extlen_t xfs_get_extsz_hint(struct xfs_inode *ip);
|
||||
xfs_extlen_t xfs_get_cowextsz_hint(struct xfs_inode *ip);
|
||||
|
||||
int xfs_init_new_inode(struct mnt_idmap *idmap, struct xfs_trans *tp,
|
||||
struct xfs_inode *pip, xfs_ino_t ino, umode_t mode,
|
||||
xfs_nlink_t nlink, dev_t rdev, prid_t prid, bool init_xattrs,
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "xfs_ioctl.h"
|
||||
#include "xfs_xattr.h"
|
||||
#include "xfs_file.h"
|
||||
#include "xfs_bmap.h"
|
||||
|
||||
#include <linux/posix_acl.h>
|
||||
#include <linux/security.h>
|
||||
|
Loading…
Reference in New Issue
Block a user