diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2016-12-09 16:18:30 -0800 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2016-12-09 16:18:30 -0800 |
commit | 876bec6f9bbfcb394916d17e35226b086c04dc45 (patch) | |
tree | 8ee379448efd67d0e1c8f052fd5ffdaf6c03ab7e /include | |
parent | a76b5b04375f974579c83433b06466758c0c552c (diff) | |
download | linux-stable-876bec6f9bbfcb394916d17e35226b086c04dc45.tar.gz linux-stable-876bec6f9bbfcb394916d17e35226b086c04dc45.tar.bz2 linux-stable-876bec6f9bbfcb394916d17e35226b086c04dc45.zip |
vfs: refactor clone/dedupe_file_range common functions
Hoist both the XFS reflink inode state and preparation code and the XFS
file blocks compare functions into the VFS so that ocfs2 can take
advantage of it for reflink and dedupe.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/fs.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index dc0478c07b2a..caea736fa09c 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1778,8 +1778,14 @@ extern ssize_t vfs_writev(struct file *, const struct iovec __user *, unsigned long, loff_t *, int); extern ssize_t vfs_copy_file_range(struct file *, loff_t , struct file *, loff_t, size_t, unsigned int); +extern int vfs_clone_file_prep_inodes(struct inode *inode_in, loff_t pos_in, + struct inode *inode_out, loff_t pos_out, + u64 *len, bool is_dedupe); extern int vfs_clone_file_range(struct file *file_in, loff_t pos_in, struct file *file_out, loff_t pos_out, u64 len); +extern int vfs_dedupe_file_range_compare(struct inode *src, loff_t srcoff, + struct inode *dest, loff_t destoff, + loff_t len, bool *is_same); extern int vfs_dedupe_file_range(struct file *file, struct file_dedupe_range *same); |