From 91a43e63c2c337e75db720d5fb4eceef3f05970c Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Sun, 8 Nov 2015 22:42:27 +0100 Subject: [PATCH] Correctly use linux/ext2_fs.h or ext2fs/ext2_fs.h Signed-off-by: Laurent Vivier --- Rules.mk | 4 ++++ libext2/ext2.h | 4 ++++ libext2/ext2_utils.c | 15 +++++++++++++++ libext2/ext2_utils.h | 4 ++++ tools/ext2_ls.c | 4 ++++ 5 files changed, 31 insertions(+) diff --git a/Rules.mk b/Rules.mk index 7fc4c1a..5fd3ea6 100644 --- a/Rules.mk +++ b/Rules.mk @@ -30,3 +30,7 @@ else clean: rm -f $(OBJS) $(PROGRAMS) $(LIBRARY) $(CLEAN) $(LIBRARIES) endif + +ifeq ($(shell readlink -e /usr/include/linux/ext2_fs.h),) +CPPFLAGS += -DCONFIG_E2FSLIBS +endif diff --git a/libext2/ext2.h b/libext2/ext2.h index 72001c2..81782c9 100644 --- a/libext2/ext2.h +++ b/libext2/ext2.h @@ -9,7 +9,11 @@ #include #include +#ifdef CONFIG_E2FSLIBS #include +#else +#include +#endif #include diff --git a/libext2/ext2_utils.c b/libext2/ext2_utils.c index e644697..35b90f0 100644 --- a/libext2/ext2_utils.c +++ b/libext2/ext2_utils.c @@ -24,9 +24,17 @@ void ext2_get_super(device_io_t *device, struct ext2_super_block *super) super->s_free_inodes_count = __le32_to_cpu(super->s_free_inodes_count); super->s_first_data_block = __le32_to_cpu(super->s_first_data_block); super->s_log_block_size = __le32_to_cpu(super->s_log_block_size); +#ifdef CONFIG_E2FSLIBS super->s_log_cluster_size = __le32_to_cpu(super->s_log_cluster_size); +#else + super->s_log_frag_size = __le32_to_cpu(super->s_log_frag_size); +#endif super->s_blocks_per_group = __le32_to_cpu(super->s_blocks_per_group); +#ifdef CONFIG_E2FSLIBS super->s_clusters_per_group = __le32_to_cpu(super->s_clusters_per_group); +#else + super->s_frags_per_group = __le32_to_cpu(super->s_frags_per_group); +#endif super->s_inodes_per_group = __le32_to_cpu(super->s_inodes_per_group); super->s_mtime = __le32_to_cpu(super->s_mtime); super->s_wtime = __le32_to_cpu(super->s_wtime); @@ -150,15 +158,22 @@ int ext2_get_inode(ext2_VOLUME* volume, inode->i_file_acl = __le32_to_cpu(le_inode->i_file_acl); inode->i_dir_acl = __le32_to_cpu(le_inode->i_dir_acl); inode->i_faddr = __le32_to_cpu(le_inode->i_faddr); +#ifdef CONFIG_E2FSLIBS inode->osd2.linux2.l_i_blocks_hi = __le16_to_cpu(le_inode->osd2.linux2.l_i_blocks_hi); inode->osd2.linux2.l_i_file_acl_high = __le16_to_cpu(le_inode->osd2.linux2.l_i_file_acl_high); +#else + inode->osd2.linux2.l_i_frag = le_inode->osd2.linux2.l_i_frag; + inode->osd2.linux2.l_i_fsize = le_inode->osd2.linux2.l_i_fsize; +#endif inode->osd2.linux2.l_i_uid_high = __le16_to_cpu(le_inode->osd2.linux2.l_i_uid_high); inode->osd2.linux2.l_i_gid_high = __le16_to_cpu(le_inode->osd2.linux2.l_i_gid_high); +#ifdef CONFIG_E2FSLIBS +#endif return 0; } diff --git a/libext2/ext2_utils.h b/libext2/ext2_utils.h index 3ed5211..e44f021 100644 --- a/libext2/ext2_utils.h +++ b/libext2/ext2_utils.h @@ -8,7 +8,11 @@ #define __EXT2_UTILS_H__ #include +#ifdef CONFIG_E2FSLIBS #include +#else +#include +#endif #include #include "ext2.h" diff --git a/tools/ext2_ls.c b/tools/ext2_ls.c index b049bb8..e3edc9b 100644 --- a/tools/ext2_ls.c +++ b/tools/ext2_ls.c @@ -16,7 +16,11 @@ #include +#ifdef CONFIG_E2FSLIBS #include +#else +#include +#endif #include #include "device.h"