Browse Source

e2fsprogs: add two compile fixes.

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

SVN-Revision: 24720
Hauke Mehrtens 15 years ago
parent
commit
ba45b5a907

+ 36 - 0
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)

+ 26 - 0
tools/e2fsprogs/patches/004-big_endian_compile_fix.patch

@@ -0,0 +1,26 @@
+From: Theodore Ts'o <[email protected]>
+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" <[email protected]>
+---
+
+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);
+