Commit d76e1370 authored by Darrick J. Wong's avatar Darrick J. Wong

xfs: move inode copy-on-write predicates to xfs_inode.[ch]

Move these inode predicate functions to xfs_inode.[ch] since they're not
reflink functions.
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent 24a4e1cb
...@@ -4297,3 +4297,11 @@ xfs_inode_alloc_unitsize( ...@@ -4297,3 +4297,11 @@ xfs_inode_alloc_unitsize(
return XFS_FSB_TO_B(ip->i_mount, blocks); return XFS_FSB_TO_B(ip->i_mount, blocks);
} }
/* Should we always be using copy on write for file writes? */
bool
xfs_is_always_cow_inode(
struct xfs_inode *ip)
{
return ip->i_mount->m_always_cow && xfs_has_reflink(ip->i_mount);
}
...@@ -292,6 +292,13 @@ static inline bool xfs_is_metadata_inode(struct xfs_inode *ip) ...@@ -292,6 +292,13 @@ static inline bool xfs_is_metadata_inode(struct xfs_inode *ip)
xfs_is_quota_inode(&mp->m_sb, ip->i_ino); xfs_is_quota_inode(&mp->m_sb, ip->i_ino);
} }
bool xfs_is_always_cow_inode(struct xfs_inode *ip);
static inline bool xfs_is_cow_inode(struct xfs_inode *ip)
{
return xfs_is_reflink_inode(ip) || xfs_is_always_cow_inode(ip);
}
/* /*
* Check if an inode has any data in the COW fork. This might be often false * Check if an inode has any data in the COW fork. This might be often false
* even for inodes with the reflink flag when there is no pending COW operation. * even for inodes with the reflink flag when there is no pending COW operation.
......
...@@ -6,16 +6,6 @@ ...@@ -6,16 +6,6 @@
#ifndef __XFS_REFLINK_H #ifndef __XFS_REFLINK_H
#define __XFS_REFLINK_H 1 #define __XFS_REFLINK_H 1
static inline bool xfs_is_always_cow_inode(struct xfs_inode *ip)
{
return ip->i_mount->m_always_cow && xfs_has_reflink(ip->i_mount);
}
static inline bool xfs_is_cow_inode(struct xfs_inode *ip)
{
return xfs_is_reflink_inode(ip) || xfs_is_always_cow_inode(ip);
}
extern int xfs_reflink_trim_around_shared(struct xfs_inode *ip, extern int xfs_reflink_trim_around_shared(struct xfs_inode *ip,
struct xfs_bmbt_irec *irec, bool *shared); struct xfs_bmbt_irec *irec, bool *shared);
int xfs_bmap_trim_cow(struct xfs_inode *ip, struct xfs_bmbt_irec *imap, int xfs_bmap_trim_cow(struct xfs_inode *ip, struct xfs_bmbt_irec *imap,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment