summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/refcounttree.h
diff options
context:
space:
mode:
authorDarrick J. Wong <darrick.wong@oracle.com>2016-11-09 23:13:11 +0100
committerDarrick J. Wong <darrick.wong@oracle.com>2016-12-10 21:39:45 +0100
commit29ac8e856cb3694e004037de595dec4ec53d42f2 (patch)
tree006df64270ecc128a4b837215c7ef78bd259ff51 /fs/ocfs2/refcounttree.h
parentocfs2: charge quota for reflinked blocks (diff)
downloadlinux-29ac8e856cb3694e004037de595dec4ec53d42f2.tar.xz
linux-29ac8e856cb3694e004037de595dec4ec53d42f2.zip
ocfs2: implement the VFS clone_range, copy_range, and dedupe_range features
Connect the new VFS clone_range, copy_range, and dedupe_range features to the existing reflink capability of ocfs2. Compared to the existing ocfs2 reflink ioctl We have to do things a little differently to support the VFS semantics (we can clone subranges of a file but we don't clone xattrs), but the VFS ioctls are more broadly supported. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> --- v2: Convert inline data files to extents files before reflinking, and fix i_blocks so that stat(2) output is correct. v3: Make zero-length dedupe consistent with btrfs behavior. v4: Use VFS double-inode lock routines and remove MAX_DEDUPE_LEN.
Diffstat (limited to 'fs/ocfs2/refcounttree.h')
-rw-r--r--fs/ocfs2/refcounttree.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/ocfs2/refcounttree.h b/fs/ocfs2/refcounttree.h
index 6422bbcdb525..4af55bf4b35b 100644
--- a/fs/ocfs2/refcounttree.h
+++ b/fs/ocfs2/refcounttree.h
@@ -115,4 +115,11 @@ int ocfs2_reflink_ioctl(struct inode *inode,
const char __user *oldname,
const char __user *newname,
bool preserve);
+int ocfs2_reflink_remap_range(struct file *file_in,
+ loff_t pos_in,
+ struct file *file_out,
+ loff_t pos_out,
+ u64 len,
+ bool is_dedupe);
+
#endif /* OCFS2_REFCOUNTTREE_H */