On Wed, Aug 26, 2015 at 03:37:23PM +0200, David Sterba wrote:
> 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.
But... structure size is encoded in the ioctl definition, so adding bytes
to struct file_clone_range now will change the ioctl number and break
userland.
--D
>
> > 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-fsdevel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html