2013-01-22 14:35:20

by Bradley C. Kuszmaul

[permalink] [raw]
Subject: hole punching in ext4

Hi,

Do any of the ext file systems support hole punching? If so, do the
redhat distributions support it? Can someone provide an example of a
program that punches a hole in a file in an ext4 file system?

-Bradley


2013-01-22 15:53:12

by Eric Sandeen

[permalink] [raw]
Subject: Re: hole punching in ext4

On 1/22/13 8:34 AM, Bradley C. Kuszmaul wrote:
> Hi,
>
> Do any of the ext file systems support hole punching?

ext4 does:

[esandeen@host linux-2.6]$ grep -l FALLOC_FL_PUNCH_HOLE fs/ext?/*.[ch]
fs/ext4/extents.c

> If so, do the redhat distributions support it?

Normally a question for Red Hat support, but yes, recent RHEL6
supports punch in ext4.

> Can someone provide an example of a
> program that punches a hole in a file in an ext4 file system?

Upstream fallocate command does with the -p option, for example.

-Eric

> -Bradley
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>


2013-01-22 16:06:15

by Zheng Liu

[permalink] [raw]
Subject: Re: hole punching in ext4

On Tue, Jan 22, 2013 at 09:34:59AM -0500, Bradley C. Kuszmaul wrote:
> Hi,
>
> Do any of the ext file systems support hole punching? If so, do the
> redhat distributions support it? Can someone provide an example of a
> program that punches a hole in a file in an ext4 file system?

Hello,

Ext4 file system supports hole punching. But until now only extent-based
file supports it. As far as I know, redhat distributions don't support
hole punching. You can find a sample program from e2fsprogs which is in
$e2fsprogs/conrib/fallocate.c. The latest fallocate(1) in util-linux
also can be as a demo.

Regards,
- Zheng

2013-01-22 16:38:16

by Carlos Maiolino

[permalink] [raw]
Subject: Re: hole punching in ext4

Ext4 supports it, and you can use fallocate(2) with flag FALLOC_FL_PUNCH_HOLE to
dealloc space of a specific file (please see `man 2 fallocate` for more info).

You can use `fallocate` cmdline program to test it.

Ex:

fallocate -p -o 1024 -l 4096 <filename>

fallocate is available on ext4 since linux 3.1 afaik


About Enterprise distros, it's usually better to contact the customer support to
get information about availability/supportability of a specific feature.


Cheers

On Tue, Jan 22, 2013 at 09:34:59AM -0500, Bradley C. Kuszmaul wrote:
> Hi,
>
> Do any of the ext file systems support hole punching? If so, do the
> redhat distributions support it? Can someone provide an example of a
> program that punches a hole in a file in an ext4 file system?
>
> -Bradley
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

--
Carlos

2013-01-22 23:50:22

by Bradley C. Kuszmaul

[permalink] [raw]
Subject: Re: hole punching in ext4

Thanks, this has been a very helpful thread.

How do I determine and control whether a file is extent-based?

-Bradley


On Tue, Jan 22, 2013 at 11:20 AM, Zheng Liu <[email protected]> wrote:
> Ext4 file system supports hole punching. But until now only extent-based
> file supports it. As far as I know, redhat distributions don't support
> hole punching. You can find a sample program from e2fsprogs which is in
> $e2fsprogs/conrib/fallocate.c. The latest fallocate(1) in util-linux
> also can be as a demo.

2013-01-23 00:03:14

by Andreas Dilger

[permalink] [raw]
Subject: Re: hole punching in ext4

On 2013-01-22, at 4:50 PM, Bradley C. Kuszmaul wrote:
> Thanks, this has been a very helpful thread.
>
> How do I determine and control whether a file is extent-based?

You can use "lsattr" on the file, and look for the "e" attribute.

This should be standard for any ext4-formatted filesystem. For
filesystems upgraded from ext3, you need to "tune2fs -O extents"
to enable this feature.

Cheers, Andreas

> On Tue, Jan 22, 2013 at 11:20 AM, Zheng Liu <[email protected]> wrote:
>> Ext4 file system supports hole punching. But until now only extent-based
>> file supports it. As far as I know, redhat distributions don't support
>> hole punching. You can find a sample program from e2fsprogs which is in
>> $e2fsprogs/conrib/fallocate.c. The latest fallocate(1) in util-linux
>> also can be as a demo.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html


2013-01-23 01:39:42

by Eric Sandeen

[permalink] [raw]
Subject: Re: hole punching in ext4

On 1/22/13 6:03 PM, Andreas Dilger wrote:
> On 2013-01-22, at 4:50 PM, Bradley C. Kuszmaul wrote:
>> Thanks, this has been a very helpful thread.
>>
>> How do I determine and control whether a file is extent-based?
>
> You can use "lsattr" on the file, and look for the "e" attribute.
>
> This should be standard for any ext4-formatted filesystem. For
> filesystems upgraded from ext3, you need to "tune2fs -O extents"
> to enable this feature.

But since it sounds like you might be on RHEL, don't do that. We don't
test it or support it. If you want ext4, mkfs.ext4 the device and go
from there.

-Eric

> Cheers, Andreas
>
>> On Tue, Jan 22, 2013 at 11:20 AM, Zheng Liu <[email protected]> wrote:
>>> Ext4 file system supports hole punching. But until now only extent-based
>>> file supports it. As far as I know, redhat distributions don't support
>>> hole punching. You can find a sample program from e2fsprogs which is in
>>> $e2fsprogs/conrib/fallocate.c. The latest fallocate(1) in util-linux
>>> also can be as a demo.
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>