|
|
|
Re: [PATCH 2/2 -v2] e2image: attempt to use ftruncate64 to set i_size for raw images | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
|
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@xxxxxxx>
> ---
>
> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Reiser Filesystem Development] [Kernel Newbies] [Share Photos] [Security] [Netfilter] [Bugtraq] [Linux FS] [Photo] [Yosemite] [Yosemite News] [MIPS Linux] [ARM Linux] [Linux Security] [Linux RAID] [Samba] [Video 4 Linux] [Device Mapper] [Linux Resources]
![]() |