2012-03-05 05:36:33

by Mike Frysinger

[permalink] [raw]
Subject: [PATCH] libext2fs: check for fallocate symbol before using it

If we have newer kernel headers which define FALLOC_FL_PUNCH_HOLE, but we
are on an older glibc which lacks fallocate, we end up trying to use the
func anyways. Check the ifdef that autoconf already set up for us.

Reported-by: Ortwin Glueck <[email protected]>
Signed-off-by: Mike Frysinger <[email protected]>
---
lib/ext2fs/unix_io.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lib/ext2fs/unix_io.c b/lib/ext2fs/unix_io.c
index 9f0613a..da3f8fd 100644
--- a/lib/ext2fs/unix_io.c
+++ b/lib/ext2fs/unix_io.c
@@ -905,7 +905,7 @@ static errcode_t unix_discard(io_channel channel, unsigned long long block,
goto unimplemented;
#endif
} else {
-#ifdef FALLOC_FL_PUNCH_HOLE
+#if defined(HAVE_FALLOCATE) && defined(FALLOC_FL_PUNCH_HOLE)
/*
* If we are not on block device, try to use punch hole
* to reclaim free space.
--
1.7.8.4



2012-03-07 16:22:42

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] libext2fs: check for fallocate symbol before using it

On Mon, Mar 05, 2012 at 12:36:35AM -0500, Mike Frysinger wrote:
> If we have newer kernel headers which define FALLOC_FL_PUNCH_HOLE, but we
> are on an older glibc which lacks fallocate, we end up trying to use the
> func anyways. Check the ifdef that autoconf already set up for us.
>
> Reported-by: Ortwin Glueck <[email protected]>
> Signed-off-by: Mike Frysinger <[email protected]>

Thanks, applied.

- Ted