Details
-
Bug
-
Resolution: Fixed
-
Critical
-
None
-
None
-
-
3
-
12838
Description
While compiling e2fsprogs against Lustre master branch on RHEL6.5/ppc64, I hit the following errors:
In file included from /root/lustre-release/build/lustre-2.5.56//lustre/include/lustre/lustre_user.h:51, from /root/lustre-release/build/lustre-2.5.56//lustre/include/lustre/lustreapi.h:46, from ../lib/ext2fs/lfsck.h:10, from lfsck_common.c:29: /root/lustre-release/build/lustre-2.5.56//libcfs/include/libcfs/posix/posix-types.h:48: error: conflicting types for 'umode_t' /usr/include/asm/types.h:31: note: previous declaration of 'umode_t' was here CC util.c In file included from /root/lustre-release/build/lustre-2.5.56//lustre/include/lustre/lustre_user.h:51, from /root/lustre-release/build/lustre-2.5.56//lustre/include/lustre/lustreapi.h:46, from ../lib/ext2fs/lfsck.h:10, from lfsck.c:80: /root/lustre-release/build/lustre-2.5.56//libcfs/include/libcfs/posix/posix-types.h:48: error: conflicting types for 'umode_t' /usr/include/asm/types.h:31: note: previous declaration of 'umode_t' was here make[3]: *** [lfsck_common.o] Error 1
The build log "build_e2fsprogs.ppc64.log" is attached.
Attachments
Issue Links
- is related to
-
LU-5326 conflicting types for ‘umode_t’ on powerpc64
-
- Closed
-
Looking at the e2fsprogs code, it seems that there is almost no code using ext2_dir_entry_2, it all uses ext2_dir_entry and then masks name_len and shifts down file_type. Unfortunately, in the e2fsprogs code, the in-memory representation of the directory entry is often already swabbed, so the change to ext2_dir_entry_2 would break for entries that are already swabbed.
I think it would be better to update the Lustre patches to use ext2_dir_entry and use the mask-and-shift method used by the rest of the code. Since I'm already updating the e2fsprogs patches to the latest maint release, I will do this part. I'm not sure what is wrong with the PAGE_SIZE patches or others since I don't know why they are failing.