Patchwork libext2fs: check for fallocate symbol before using it

login
register
mail settings
Submitter Mike Frysinger
Date March 5, 2012, 5:36 a.m.
Message ID <1330925795-12358-1-git-send-email-vapier@gentoo.org>
Download mbox | patch
Permalink /patch/144605/
State Accepted
Headers show

Comments

Mike Frysinger - March 5, 2012, 5:36 a.m.
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 <odi@odi.ch>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 lib/ext2fs/unix_io.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Theodore Ts'o - March 7, 2012, 1:22 a.m.
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 <odi@odi.ch>
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>

Thanks, applied.

						- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

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.