Hi all, The first two patches are minor cleanups. The rest 6 added NFSv42 CLONE support via a new ioctl interface. There's a minor conflict between the cleanup and new functionality. So I ended up sending them together. Tested with following program as well as `cp --reflink=always`. Cheers, Tao v1->v2 changelog: 1. change NFS_IOC_CLONE definition to match BTRFS_IOC_CLONE 2. add NFS_IOC_CLONE_RANGE that is same as BTRFS_IOC_RANGE [lear@tests]$cat copy_reflink.c #include <sys/ioctl.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> void usage(const char *cmd) { printf("%s: <src_file_name> <dst_file_name>\n", cmd); } int main(char argc, char** argv) { int srcfd, dstfd; if (argc < 3) { usage(argv[0]); return -1; } srcfd = open(argv[1], O_RDONLY); if (srcfd < 0) { perror("open failed"); return -1; } dstfd = open(argv[2], O_WRONLY|O_CREAT, 0644); if (dstfd < 0) { perror("open failed"); return -1; } #ifndef NFS_IOC_CLONE #define NFS_IOC_CLONE _IOW(0x94, 9, int) #endif if (ioctl(dstfd, NFS_IOC_CLONE, srcfd) < 0) perror("ioctl CLONE failed\n"); close(srcfd); close(dstfd); return 0; } Peng Tao (8): nfs42: decode_layoutstats does not need res parameter nfs42: remove unused declaration nfs42: add CLONE xdr functions nfs42: add CLONE proc functions nfs42: add NFS_IOC_CLONE ioctl nfs: get clone_blksize when probing fsinfo nfs42: respect clone_blksize nfs42: add NFS_IOC_CLONE_RANGE ioctl fs/nfs/client.c | 1 + fs/nfs/nfs42.h | 3 +- fs/nfs/nfs42proc.c | 71 ++++++++++++++++++++++++++ fs/nfs/nfs42xdr.c | 102 +++++++++++++++++++++++++++++++++++-- fs/nfs/nfs4file.c | 127 ++++++++++++++++++++++++++++++++++++++++++++++ fs/nfs/nfs4proc.c | 4 +- fs/nfs/nfs4xdr.c | 26 ++++++++++ include/linux/nfs4.h | 3 ++ include/linux/nfs_fs_sb.h | 2 + include/linux/nfs_xdr.h | 20 ++++++++ include/uapi/linux/nfs.h | 11 ++++ 11 files changed, 363 insertions(+), 7 deletions(-) -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html