All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/8] nfs: minor cleanups and NFSv42 CLONE support
@ 2015-07-13  9:06 Peng Tao
  2015-07-13  9:06 ` [PATCH v2 1/8] nfs42: decode_layoutstats does not need res parameter Peng Tao
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: Peng Tao @ 2015-07-13  9:06 UTC (permalink / raw)
  To: linux-nfs; +Cc: Trond Myklebust, Anna Schumaker, Peng Tao

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
3. add Christoph's reviewed-by lines on the first two patches

[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


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2015-07-26 16:59 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-13  9:06 [PATCH v2 0/8] nfs: minor cleanups and NFSv42 CLONE support Peng Tao
2015-07-13  9:06 ` [PATCH v2 1/8] nfs42: decode_layoutstats does not need res parameter Peng Tao
2015-07-13  9:06 ` [PATCH v2 2/8] nfs42: remove unused declaration Peng Tao
2015-07-13  9:06 ` [PATCH v2 3/8] nfs42: add CLONE xdr functions Peng Tao
2015-07-13  9:06 ` [PATCH v2 4/8] nfs42: add CLONE proc functions Peng Tao
2015-07-13  9:06 ` [PATCH v2 5/8] nfs42: add NFS_IOC_CLONE ioctl Peng Tao
2015-07-13 13:53   ` Anna Schumaker
2015-07-13 15:46     ` Peng Tao
2015-07-13  9:06 ` [PATCH v2 6/8] nfs: get clone_blksize when probing fsinfo Peng Tao
2015-07-13  9:06 ` [PATCH v2 7/8] nfs42: respect clone_blksize Peng Tao
2015-07-13  9:06 ` [PATCH v2 8/8] nfs42: add NFS_IOC_CLONE_RANGE ioctl Peng Tao
2015-07-26 16:59 ` [PATCH v2 0/8] nfs: minor cleanups and NFSv42 CLONE support Christoph Hellwig

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.