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 majord...@vger.kernel.org
> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to