From: Eric Sandeen <sandeen@redhat.com>
To: "jeff.liu" <jeff.liu@oracle.com>
Cc: Sunil Mushran <sunil.mushran@oracle.com>,
Paul Eggert <eggert@CS.UCLA.EDU>, Jim Meyering <jim@meyering.net>,
bug-coreutils@gnu.org, Joel Becker <Joel.Becker@oracle.com>,
Chris Mason <chris.mason@oracle.com>,
"linux-ext4@vger.kernel.org" <linux-ext4@vger.kernel.org>,
Tao Ma <tao.ma@oracle.com>
Subject: Re: bug#6131: [PATCH]: fiemap support for efficient sparse file copy
Date: Fri, 11 Jun 2010 09:03:29 -0500 [thread overview]
Message-ID: <4C124231.7020304@redhat.com> (raw)
In-Reply-To: <4C11F451.8040304@oracle.com>
jeff.liu wrote:
> Sunil Mushran wrote:
>> On 06/10/2010 04:47 PM, Paul Eggert wrote:
>>> On 06/09/2010 11:56 PM, jeff.liu wrote:
>>>
>>>> Yeah, I just realized that the behaviour I observed is caused by the
>>>> delay allocation mechanism of
>>>> the particular FS.
>>>>
>>> If the file system is using delayed allocation, then can
>>> the fiemap ioctl tell us that a file contains a hole (because nothing
>>> has been
>>> allocated there), but read() would tell us that the file contains
>>> nonzero data at the same location
>>> (because it's sitting in a buffer somewhere)? If so, we'd need to do
>>> something like invoke
>>> fdatasync() on the file before issuing the fiemap ioctl, to force
>>> allocation; or perhaps
>>> there's another ioctl that will do the allocation without having to
>>> actually do a sync.
>>>
>> I guess we'll have to use FIEMAP_FLAG_SYNC.
> Hi Sunil,
>
> Thanks for the comments.
> So we can ensure the source file synced before mapping in this way.
>
> Hi Jim and Paul,
>
> How about the tiny patch below?
I agree that this is needed, thanks.
-Eric
> From d6d619a169ff68a9a310a69d8089b9fbf83b5f91 Mon Sep 17 00:00:00 2001
> From: Jie Liu <jeff.liu@oracle.com>
> Date: Fri, 11 Jun 2010 16:29:02 +0800
> Subject: [PATCH 1/1] copy.c: add FIEMAP_FLAG_SYNC to fiemap ioctl
>
> * src/copy.c (fiemap_copy): Force kernel to sync the source
> file before mapping.
>
> Signed-off-by: Jie Liu <jeff.liu@oracle.com>
> ---
> src/copy.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/src/copy.c b/src/copy.c
> index f149be4..f48c74d 100644
> --- a/src/copy.c
> +++ b/src/copy.c
> @@ -191,6 +191,7 @@ fiemap_copy (int src_fd, int dest_fd, size_t buf_size,
> do
> {
> fiemap->fm_length = FIEMAP_MAX_OFFSET;
> + fiemap->fm_flags = FIEMAP_FLAG_SYNC;
> fiemap->fm_extent_count = count;
>
> /* When ioctl(2) fails, fall back to the normal copy only if it
next prev parent reply other threads:[~2010-06-11 14:03 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4BE41FFF.4020809@oracle.com>
[not found] ` <871vdho68j.fsf@meyering.net>
[not found] ` <4BEC0BCC.3080906@oracle.com>
[not found] ` <87k4qyl6lw.fsf@meyering.net>
[not found] ` <4BF683CC.3060407@oracle.com>
[not found] ` <4BF6ABE7.3020600@oracle.com>
[not found] ` <877hmpeivx.fsf@meyering.net>
[not found] ` <4BFF763A.9010205@oracle.com>
[not found] ` <8763286kni.fsf@meyering.net>
[not found] ` <4C0275FA.1030901@oracle.com>
[not found] ` <874ohpywri.fsf@meyering.net>
[not found] ` <87y6exuc5i.fsf@meyering.net>
[not found] ` <874ohdu5b8.fsf@meyering.net>
[not found] ` <87eighs1t9.fsf@meyering.net>
[not found] ` <4C0FA93C.6020205@oracle.com>
[not found] ` <87iq5sp7eg.fsf@meyering.net>
[not found] ` <4C108CB9.8010805@oracle.com>
[not found] ` <4C11798B.6090500@cs.ucla.edu>
2010-06-11 0:31 ` bug#6131: [PATCH]: fiemap support for efficient sparse file copy Sunil Mushran
2010-06-11 8:31 ` jeff.liu
2010-06-11 12:38 ` Jim Meyering
2010-06-11 14:03 ` Eric Sandeen [this message]
2010-06-13 3:37 ` jeff.liu
2010-06-15 21:09 ` Paul Eggert
2010-06-15 21:11 ` Paul Eggert
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=4C124231.7020304@redhat.com \
--to=sandeen@redhat.com \
--cc=Joel.Becker@oracle.com \
--cc=bug-coreutils@gnu.org \
--cc=chris.mason@oracle.com \
--cc=eggert@CS.UCLA.EDU \
--cc=jeff.liu@oracle.com \
--cc=jim@meyering.net \
--cc=linux-ext4@vger.kernel.org \
--cc=sunil.mushran@oracle.com \
--cc=tao.ma@oracle.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.