[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Feature Request for cp(1) utility, consider Btrfs ioctl clone range
From: |
Pádraig Brady |
Subject: |
Re: Feature Request for cp(1) utility, consider Btrfs ioctl clone range support |
Date: |
Fri, 19 Aug 2011 14:59:26 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20110707 Thunderbird/5.0 |
On 08/10/2011 10:31 AM, Jeff Liu wrote:
> Hello,
>
> I just found a cool feature in Btrfs for cloning partially source file
> to the destination by specifying the desired offset and length to be copied.
>
> The call interface is something like below:
> struct btrfs_clone_range_args cr;
> cr.src_fd = source_desc;
> cr.src_offset = (uint64_t) offset;
> cr.src_length = (uint64_t) length;
> cr.dest_offset = (uint64_t) d_offset;
> ioctl(dest_fd, BTRFS_IOC_CLONE_RANGE, &args);
>
> cp(1) has already works with "reflink" supported for a long time, IMHO,
> this new feature could improve it to some extent.
> Is it acceptable to add a new option like
> "--reflink-range=src_offset,src_length,dst_offset" to clone partially
> source file?
> In this way, if reflink-range is triggered, cp(1) will try to parse the
> offset and length which are separated by comma,
> then try to clone src_length bytes from src_offset to the destination
> file started at dst_offset.
> if reflink-range failed, just let cp(1) fail with appropriate error info.
>
> I'd like to implement it if you guys think it does make sense. :-P.
IMHO I don't think this level of control is needed in `cp`.
cheers,
Pádraig.