e2fsprogs: add two compile fixes.

Thank you Joe Roback for reporting and fixing compiling on Darwin.

SVN-Revision: 24720
This commit is contained in:
Hauke Mehrtens 2010-12-19 11:43:45 +00:00
parent efb7c910ee
commit ba45b5a907
2 changed files with 62 additions and 0 deletions

View File

@ -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)

View File

@ -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);