e2fsprogs: add two compile fixes.
authorHauke Mehrtens <hauke@hauke-m.de>
Sun, 19 Dec 2010 11:43:45 +0000 (11:43 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 19 Dec 2010 11:43:45 +0000 (11:43 +0000)
Thank you Joe Roback for reporting and fixing compiling on Darwin.

SVN-Revision: 24720

tools/e2fsprogs/patches/003-darwin_directio_fix.patch [new file with mode: 0644]
tools/e2fsprogs/patches/004-big_endian_compile_fix.patch [new file with mode: 0644]

diff --git a/tools/e2fsprogs/patches/003-darwin_directio_fix.patch b/tools/e2fsprogs/patches/003-darwin_directio_fix.patch
new file mode 100644 (file)
index 0000000..971c7ad
--- /dev/null
@@ -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)
diff --git a/tools/e2fsprogs/patches/004-big_endian_compile_fix.patch b/tools/e2fsprogs/patches/004-big_endian_compile_fix.patch
new file mode 100644 (file)
index 0000000..9c3e336
--- /dev/null
@@ -0,0 +1,26 @@
+From: Theodore Ts'o <tytso@mit.edu>
+Date: Fri, 17 Dec 2010 03:11:43 +0000 (-0500)
+Subject: libext2fs: Fix compile bug on big-endian architectures
+X-Git-Url: http://git.kernel.org/?p=fs%2Fext2%2Fe2fsprogs.git;a=commitdiff_plain;h=9098c986b64bb65a2b7fcd2724a400ba1f451f6b
+
+libext2fs: Fix compile bug on big-endian architectures
+
+Addresses-Sourceforge-Bug: #3138115
+
+Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
+---
+
+diff --git a/lib/ext2fs/swapfs.c b/lib/ext2fs/swapfs.c
+index 6f6cec2..12427e0 100644
+--- a/lib/ext2fs/swapfs.c
++++ b/lib/ext2fs/swapfs.c
+@@ -72,7 +72,7 @@ void ext2fs_swap_super(struct ext2_super_block * sb)
+       sb->s_flags = ext2fs_swab32(sb->s_flags);
+       sb->s_kbytes_written = ext2fs_swab64(sb->s_kbytes_written);
+       sb->s_snapshot_inum = ext2fs_swab32(sb->s_snapshot_inum);
+-      sb->s_snapshot_id = ext2fs_swab32(s_snapshot_id);
++      sb->s_snapshot_id = ext2fs_swab32(sb->s_snapshot_id);
+       sb->s_snapshot_r_blocks_count =
+               ext2fs_swab64(sb->s_snapshot_r_blocks_count);
+       sb->s_snapshot_list = ext2fs_swab32(sb->s_snapshot_list);
+