On Wed, Aug 26, 2015 at 04:16:42PM +0800, Peng Tao wrote:
> +struct file_clone_range {
> +     __s64 src_fd;
> +     __u64 src_offset;
> +     __u64 src_length;
> +     __u64 dest_offset;
> +};

Might be a good idea to add some spare bytes to the structure.

>  struct fstrim_range {
>       __u64 start;
>       __u64 len;
> @@ -159,6 +166,8 @@ struct inodes_stat_t {
>  #define FIFREEZE     _IOWR('X', 119, int)    /* Freeze */
>  #define FITHAW               _IOWR('X', 120, int)    /* Thaw */
>  #define FITRIM               _IOWR('X', 121, struct fstrim_range)    /* Trim 
> */
> +#define FICLONE              _IOW(0x94, 9, int)      /* Clone */
> +#define FICLONERANGE _IOW(0x94, 13, struct file_clone_range) /* Clone range 
> */

FICLONE is a special case of FICLONERANGE. The whole file clone had come
historically first and then was refined, I don't think this needs to be
copied to the generic API. A zeroed file_clone_range is simple to use
for that purpose.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to