From: Dave Chinner <david@fromorbit.com>
To: David Disseldorp <ddiss@suse.de>
Cc: xfs@oss.sgi.com, dsterba@suse.cz, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH 1/2] btrfs: add small program for clone testing
Date: Thu, 6 Feb 2014 10:09:36 +1100 [thread overview]
Message-ID: <20140205230936.GI13997@dastard> (raw)
In-Reply-To: <1391599009-2402-2-git-send-email-ddiss@suse.de>
On Wed, Feb 05, 2014 at 12:16:48PM +0100, David Disseldorp wrote:
> The cloner program is capable of cloning files using the BTRFS_IOC_CLONE
> and BTRFS_IOC_CLONE_RANGE ioctls.
>
> Signed-off-by: David Disseldorp <ddiss@suse.de>
Hi Dave - long time since I've seen your head pop up around here ;)
A few comments below.
> +struct btrfs_ioctl_clone_range_args {
> + int64_t src_fd;
> + uint64_t src_offset;
> + uint64_t src_length;
> + uint64_t dest_offset;
> +};
> +
> +#define BTRFS_IOCTL_MAGIC 0x94
> +#define BTRFS_IOC_CLONE _IOW(BTRFS_IOCTL_MAGIC, 9, int)
> +#define BTRFS_IOC_CLONE_RANGE _IOW(BTRFS_IOCTL_MAGIC, 13, \
> + struct btrfs_ioctl_clone_range_args)
Is there some published header file that these belong to? i.e.
somewhere in the include/linux/uapi/ kernel directory? Normally the
way to handle this sort of thing is by autoconf - if the header file
exists, then we include it, otherwise we use the manual definitions.
This just means that if the public api ever changes, we'll pick it
up automatically in future...
> +int
> +main(int argc, char **argv)
> +{
> + bool full_file = true;
> + uint64_t src_off = 0;
> + uint64_t dst_off = 0;
> + uint64_t len = 0;
> + char *src_file;
> + int src_fd;
> + char *dst_file;
> + int dst_fd;
> + int ret;
> + int opt;
> +
> + while ((opt = getopt(argc, argv, "s:d:l:")) != -1) {
> + switch (opt) {
> + case 's':
> + src_off = atoi(optarg);
atoi() only returns 32 bit numbers. You probably should use
strtoull() as the offset parameters are 64 bit.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2014-02-05 23:09 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-05 11:16 [PATCH 0/2] __btrfs_drop_extents() BUG_ON reproducer David Disseldorp
2014-02-05 11:16 ` [PATCH 1/2] btrfs: add small program for clone testing David Disseldorp
2014-02-05 23:09 ` Dave Chinner [this message]
2014-02-06 10:03 ` David Disseldorp
2014-02-05 11:16 ` [PATCH 2/2] btrfs/035: add new clone overwrite regression test David Disseldorp
2014-02-05 23:15 ` Dave Chinner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140205230936.GI13997@dastard \
--to=david@fromorbit.com \
--cc=ddiss@suse.de \
--cc=dsterba@suse.cz \
--cc=linux-btrfs@vger.kernel.org \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).