[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.00.1202172119270.10691@dhcp-27-109.brq.redhat.com>
Date: Fri, 17 Feb 2012 21:19:43 +0100 (CET)
From: Lukas Czerner <lczerner@...hat.com>
To: "Theodore Ts'o" <tytso@....edu>
cc: Ext4 Developers List <linux-ext4@...r.kernel.org>
Subject: Re: [PATCH 2/2 -v2] e2image: attempt to use ftruncate64 to set i_size
for raw images
On Fri, 17 Feb 2012, Theodore Ts'o wrote:
> If ftruncate64() exists, try to use it to set i_size. This isn't
> guaranteed to work, per SuSv3, but if it doesn't work, it's guaranteed
> to return an error. So for file systems and/or operating systems that
> don't support extending i_size via ftruncate64(), fall back to writing
> the trailing null.
Looks good, thanks.
-Lukas
>
> Signed-off-by: "Theodore Ts'o" <tytso@....edu>
> ---
>
> Oops, sent the wrong version of the patch. My bad.
>
> misc/e2image.c | 11 +++++++++++
> 1 files changed, 11 insertions(+), 0 deletions(-)
>
> diff --git a/misc/e2image.c b/misc/e2image.c
> index 3cb92fe..93359cf 100644
> --- a/misc/e2image.c
> +++ b/misc/e2image.c
> @@ -510,8 +510,19 @@ static void output_meta_data_blocks(ext2_filsys fs, int fd)
> }
> }
> }
> +#ifdef HAVE_FTRUNCATE64
> + if (sparse) {
> + ext2_loff_t offset = ext2fs_llseek(fd, sparse, SEEK_CUR);
> +
> + if (offset < 0)
> + lseek_error_and_exit(errno);
> + if (ftruncate64(fd, offset) < 0)
> + write_block(fd, zero_buf, -1, 1, -1);
> + }
> +#else
> if (sparse)
> write_block(fd, zero_buf, sparse-1, 1, -1);
> +#endif
> ext2fs_free_mem(&zero_buf);
> ext2fs_free_mem(&buf);
> }
>
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists