Lines Matching refs:src
332 static int btrfs_clone(struct inode *src, struct inode *inode, in btrfs_clone() argument
362 key.objectid = btrfs_ino(BTRFS_I(src)); in btrfs_clone()
378 ret = btrfs_search_slot(NULL, BTRFS_I(src)->root, &key, path, in btrfs_clone()
397 ret = btrfs_next_leaf(BTRFS_I(src)->root, path); in btrfs_clone()
409 key.objectid != btrfs_ino(BTRFS_I(src))) in btrfs_clone()
547 BTRFS_I(src)->last_reflink_trans = trans->transid; in btrfs_clone()
658 static int btrfs_extent_same_range(struct inode *src, u64 loff, u64 len, in btrfs_extent_same_range() argument
661 struct btrfs_fs_info *fs_info = BTRFS_I(src)->root->fs_info; in btrfs_extent_same_range()
669 btrfs_double_extent_lock(src, loff, dst, dst_loff, len); in btrfs_extent_same_range()
670 ret = btrfs_clone(src, dst, loff, len, ALIGN(len, bs), dst_loff, 1); in btrfs_extent_same_range()
671 btrfs_double_extent_unlock(src, loff, dst, dst_loff, len); in btrfs_extent_same_range()
678 static int btrfs_extent_same(struct inode *src, u64 loff, u64 olen, in btrfs_extent_same() argument
701 ret = btrfs_extent_same_range(src, loff, BTRFS_MAX_DEDUPE_LEN, in btrfs_extent_same()
711 ret = btrfs_extent_same_range(src, loff, tail_len, dst, dst_loff); in btrfs_extent_same()
724 struct inode *src = file_inode(file_src); in btrfs_clone_files() local
737 if (off + len == src->i_size) in btrfs_clone_files()
738 len = ALIGN(src->i_size, bs) - off; in btrfs_clone_files()
765 btrfs_double_extent_lock(src, off, inode, destoff, len); in btrfs_clone_files()
766 ret = btrfs_clone(src, inode, off, olen, len, destoff, 0); in btrfs_clone_files()
767 btrfs_double_extent_unlock(src, off, inode, destoff, len); in btrfs_clone_files()