Whamcloud - gitweb
e4defrag: fix ppc build
authorKyle McMartin <kyle@mcmartin.ca>
Mon, 24 Aug 2009 05:09:58 +0000 (22:09 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 7 Sep 2009 21:00:33 +0000 (17:00 -0400)
ppc glibc seems to be missing sync_file_range, so we fell back
to the local define, and there ppc differs as well, so the
build was failing.

Thanks to Kyle for the patch w/ the tidy solution.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/e4defrag.c

index 4451a63..82e3868 100644 (file)
@@ -305,8 +305,10 @@ static int posix_fadvise(int fd, loff_t offset, size_t len, int advise)
 #warning Using locally defined sync_file_range interface.
 
 #ifndef __NR_sync_file_range
+#ifndef __NR_sync_file_range2 /* ppc */
 #error Your kernel headers dont define __NR_sync_file_range
 #endif
+#endif
 
 /*
  * sync_file_range() - Sync file region.
@@ -318,7 +320,11 @@ static int posix_fadvise(int fd, loff_t offset, size_t len, int advise)
  */
 int sync_file_range(int fd, loff_t offset, loff_t length, unsigned int flag)
 {
+#ifdef __NR_sync_file_range
        return syscall(__NR_sync_file_range, fd, offset, length, flag);
+#else
+       return syscall(__NR_sync_file_range2, fd, flag, offset, length);
+#endif
 }
 #endif /* ! HAVE_SYNC_FILE_RANGE */