From ba45b5a90730d8b3bc90e27bf16e8911fd4577d3 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 19 Dec 2010 11:43:45 +0000 Subject: e2fsprogs: add two compile fixes. Thank you Joe Roback for reporting and fixing compiling on Darwin. SVN-Revision: 24720 --- .../patches/003-darwin_directio_fix.patch | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tools/e2fsprogs/patches/003-darwin_directio_fix.patch (limited to 'tools/e2fsprogs/patches/003-darwin_directio_fix.patch') diff --git a/tools/e2fsprogs/patches/003-darwin_directio_fix.patch b/tools/e2fsprogs/patches/003-darwin_directio_fix.patch new file mode 100644 index 0000000000..971c7ad99b --- /dev/null +++ b/tools/e2fsprogs/patches/003-darwin_directio_fix.patch @@ -0,0 +1,36 @@ +--- a/lib/ext2fs/unix_io.c ++++ b/lib/ext2fs/unix_io.c +@@ -428,6 +428,7 @@ static errcode_t unix_open(const char *n + struct unix_private_data *data = NULL; + errcode_t retval; + int open_flags; ++ int f_nocache = 0; + struct stat st; + #ifdef __linux__ + struct utsname ut; +@@ -464,7 +465,11 @@ static errcode_t unix_open(const char *n + if (flags & IO_FLAG_EXCLUSIVE) + open_flags |= O_EXCL; + if (flags & IO_FLAG_DIRECT_IO) ++#if !defined(O_DIRECT) && defined(F_NOCACHE) ++ f_nocache = F_NOCACHE; ++#else + open_flags |= O_DIRECT; ++#endif + data->flags = flags; + + #ifdef HAVE_OPEN64 +@@ -477,6 +482,13 @@ static errcode_t unix_open(const char *n + goto cleanup; + } + ++ if (f_nocache) { ++ if (fcntl(data->dev, f_nocache, 1) < 0) { ++ retval = errno; ++ goto cleanup; ++ } ++ } ++ + #ifdef BLKSSZGET + if (flags & IO_FLAG_DIRECT_IO) { + if (ioctl(data->dev, BLKSSZGET, &data->align) != 0) -- cgit v1.2.3