Whamcloud - gitweb
libext2fs: check for fallocate symbol before using it
authorMike Frysinger <vapier@gentoo.org>
Wed, 7 Mar 2012 01:21:36 +0000 (20:21 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 7 Mar 2012 01:21:39 +0000 (20:21 -0500)
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>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/ext2fs/unix_io.c

index 9f0613a..da3f8fd 100644 (file)
@@ -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.