Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-16364

lustre w/zfs 2.1.7 build fails with d_u.d_alias conflict

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.16.0
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      d_u.d_alias is only needed in llite so move the ifdef to llite_internal.h from lustre_compat.h to avoid the build failure.

      Build failure:

      In file included from include/linux/kernel.h:11,
                       from /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/libcfs/include/libcfs/libcfs.h:35,
                       from /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/lustre/osd-zfs/osd_handler.c:41:
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h: In function 'zpl_d_drop_aliases':
      /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/lustre/include/lustre_compat.h:79:19: error: 'union <anonymous>' has no member named 'd_u'; did you mean 'd_rcu'?
       #define d_alias   d_u.d_alias
                         ^~~
      include/linux/compiler.h:415:19: note: in definition of macro '__compiletime_assert'
         bool __cond = !(condition);    \
                         ^~~~~~~~~
      include/linux/compiler.h:438:2: note: in expansion of macro '_compiletime_assert'
        _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
        ^~~~~~~~~~~~~~~~~~~
      include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
       #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                           ^~~~~~~~~~~~~~~~~~
      include/linux/kernel.h:995:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
        BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
        ^~~~~~~~~~~~~~~~
      include/linux/kernel.h:995:20: note: in expansion of macro '__same_type'
        BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                          ^~~~~~~~~~~
      include/linux/list.h:866:40: note: in expansion of macro 'container_of'
       #define hlist_entry(ptr, type, member) container_of(ptr,type,member)
                                              ^~~~~~~~~~~~
      include/linux/list.h:877:15: note: in expansion of macro 'hlist_entry'
           ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
                     ^~~~~~~~~~~
      include/linux/list.h:887:13: note: in expansion of macro 'hlist_entry_safe'
        for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\
                   ^~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:2: note: in expansion of macro 'hlist_for_each_entry'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
        ^~~~~~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:53: note: in expansion of macro 'd_alias'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
                                                           ^~~~~~~
      In file included from ././include/linux/compiler_types.h:58,
                       from <command-line>:
      /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/lustre/include/lustre_compat.h:79:19: error: 'union <anonymous>' has no member named 'd_u'; did you mean 'd_rcu'?
       #define d_alias   d_u.d_alias
                         ^~~
      include/linux/compiler-gcc.h:185:24: note: in definition of macro '__compiler_offsetof'
        __builtin_offsetof(a, b)
                              ^
      include/linux/kernel.h:998:21: note: in expansion of macro 'offsetof'
        ((type *)(__mptr - offsetof(type, member))); })
                           ^~~~~~~~
      include/linux/list.h:866:40: note: in expansion of macro 'container_of'
       #define hlist_entry(ptr, type, member) container_of(ptr,type,member)
                                              ^~~~~~~~~~~~
      include/linux/list.h:877:15: note: in expansion of macro 'hlist_entry'
           ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
                     ^~~~~~~~~~~
      include/linux/list.h:887:13: note: in expansion of macro 'hlist_entry_safe'
        for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\
                   ^~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:2: note: in expansion of macro 'hlist_for_each_entry'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
        ^~~~~~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:53: note: in expansion of macro 'd_alias'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
                                                           ^~~~~~~
      In file included from include/linux/module.h:9,
                       from /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/libcfs/include/libcfs/libcfs.h:36,
                       from /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/lustre/osd-zfs/osd_handler.c:41:
      /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/lustre/include/lustre_compat.h:79:19: error: 'union <anonymous>' has no member named 'd_u'; did you mean 'd_rcu'?
       #define d_alias   d_u.d_alias
                         ^~~
      include/linux/list.h:876:12: note: in definition of macro 'hlist_entry_safe'
        ({ typeof(ptr) ____ptr = (ptr); \
                  ^~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:2: note: in expansion of macro 'hlist_for_each_entry'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
        ^~~~~~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:53: note: in expansion of macro 'd_alias'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
                                                           ^~~~~~~
      /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/lustre/include/lustre_compat.h:79:19: error: 'union <anonymous>' has no member named 'd_u'; did you mean 'd_rcu'?
       #define d_alias   d_u.d_alias
                         ^~~
      include/linux/list.h:876:28: note: in definition of macro 'hlist_entry_safe'
        ({ typeof(ptr) ____ptr = (ptr); \
                                  ^~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:2: note: in expansion of macro 'hlist_for_each_entry'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
        ^~~~~~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:53: note: in expansion of macro 'd_alias'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
                                                           ^~~~~~~
      In file included from /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/libcfs/include/libcfs/libcfs.h:35,
                       from /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/lustre/osd-zfs/osd_handler.c:41:
      include/linux/kernel.h:994:17: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
        void *__mptr = (void *)(ptr);     \
                       ^
      include/linux/list.h:866:40: note: in expansion of macro 'container_of'
       #define hlist_entry(ptr, type, member) container_of(ptr,type,member)
                                              ^~~~~~~~~~~~
      include/linux/list.h:877:15: note: in expansion of macro 'hlist_entry'
           ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
                     ^~~~~~~~~~~
      include/linux/list.h:889:13: note: in expansion of macro 'hlist_entry_safe'
             pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
                   ^~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:2: note: in expansion of macro 'hlist_for_each_entry'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
        ^~~~~~~~~~~~~~~~~~~~
      In file included from include/linux/kernel.h:11,
                       from /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/libcfs/include/libcfs/libcfs.h:35,
                       from /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/lustre/osd-zfs/osd_handler.c:41:
      include/linux/kernel.h:995:32: error: invalid type argument of unary '*' (have 'int')
        BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                                      ^~~~~~
      include/linux/compiler.h:415:19: note: in definition of macro '__compiletime_assert'
         bool __cond = !(condition);    \
                         ^~~~~~~~~
      include/linux/compiler.h:438:2: note: in expansion of macro '_compiletime_assert'
        _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
        ^~~~~~~~~~~~~~~~~~~
      include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
       #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                           ^~~~~~~~~~~~~~~~~~
      include/linux/kernel.h:995:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
        BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
        ^~~~~~~~~~~~~~~~
      include/linux/kernel.h:995:20: note: in expansion of macro '__same_type'
        BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                          ^~~~~~~~~~~
      include/linux/list.h:866:40: note: in expansion of macro 'container_of'
       #define hlist_entry(ptr, type, member) container_of(ptr,type,member)
                                              ^~~~~~~~~~~~
      include/linux/list.h:877:15: note: in expansion of macro 'hlist_entry'
           ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
                     ^~~~~~~~~~~
      include/linux/list.h:889:13: note: in expansion of macro 'hlist_entry_safe'
             pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
                   ^~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:2: note: in expansion of macro 'hlist_for_each_entry'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
        ^~~~~~~~~~~~~~~~~~~~
      /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/lustre/include/lustre_compat.h:79:19: error: 'union <anonymous>' has no member named 'd_u'; did you mean 'd_rcu'?
       #define d_alias   d_u.d_alias
                         ^~~
      include/linux/compiler.h:415:19: note: in definition of macro '__compiletime_assert'
         bool __cond = !(condition);    \
                         ^~~~~~~~~
      include/linux/compiler.h:438:2: note: in expansion of macro '_compiletime_assert'
        _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
        ^~~~~~~~~~~~~~~~~~~
      include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
       #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                           ^~~~~~~~~~~~~~~~~~
      include/linux/kernel.h:995:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
        BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
        ^~~~~~~~~~~~~~~~
      include/linux/kernel.h:995:20: note: in expansion of macro '__same_type'
        BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                          ^~~~~~~~~~~
      include/linux/list.h:866:40: note: in expansion of macro 'container_of'
       #define hlist_entry(ptr, type, member) container_of(ptr,type,member)
                                              ^~~~~~~~~~~~
      include/linux/list.h:877:15: note: in expansion of macro 'hlist_entry'
           ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
                     ^~~~~~~~~~~
      include/linux/list.h:889:13: note: in expansion of macro 'hlist_entry_safe'
             pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
                   ^~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:2: note: in expansion of macro 'hlist_for_each_entry'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
        ^~~~~~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:53: note: in expansion of macro 'd_alias'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
                                                           ^~~~~~~
      include/linux/kernel.h:996:18: error: invalid type argument of unary '*' (have 'int')
           !__same_type(*(ptr), void),   \
                        ^~~~~~
      include/linux/compiler.h:415:19: note: in definition of macro '__compiletime_assert'
         bool __cond = !(condition);    \
                         ^~~~~~~~~
      include/linux/compiler.h:438:2: note: in expansion of macro '_compiletime_assert'
        _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
        ^~~~~~~~~~~~~~~~~~~
      include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
       #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                           ^~~~~~~~~~~~~~~~~~
      include/linux/kernel.h:995:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
        BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
        ^~~~~~~~~~~~~~~~
      include/linux/kernel.h:996:6: note: in expansion of macro '__same_type'
           !__same_type(*(ptr), void),   \
            ^~~~~~~~~~~
      include/linux/list.h:866:40: note: in expansion of macro 'container_of'
       #define hlist_entry(ptr, type, member) container_of(ptr,type,member)
                                              ^~~~~~~~~~~~
      include/linux/list.h:877:15: note: in expansion of macro 'hlist_entry'
           ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
                     ^~~~~~~~~~~
      include/linux/list.h:889:13: note: in expansion of macro 'hlist_entry_safe'
             pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
                   ^~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:2: note: in expansion of macro 'hlist_for_each_entry'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
        ^~~~~~~~~~~~~~~~~~~~
      In file included from ././include/linux/compiler_types.h:58,
                       from <command-line>:
      /tmp/rpmbuild-lustre-shaun-tJvI6dNU/BUILD/lustre-2.15.0.3_rc2_cray_410_g1bd998f/lustre/include/lustre_compat.h:79:19: error: 'union <anonymous>' has no member named 'd_u'; did you mean 'd_rcu'?
       #define d_alias   d_u.d_alias
                         ^~~
      include/linux/compiler-gcc.h:185:24: note: in definition of macro '__compiler_offsetof'
        __builtin_offsetof(a, b)
                              ^
      include/linux/kernel.h:998:21: note: in expansion of macro 'offsetof'
        ((type *)(__mptr - offsetof(type, member))); })
                           ^~~~~~~~
      include/linux/list.h:866:40: note: in expansion of macro 'container_of'
       #define hlist_entry(ptr, type, member) container_of(ptr,type,member)
                                              ^~~~~~~~~~~~
      include/linux/list.h:877:15: note: in expansion of macro 'hlist_entry'
           ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
                     ^~~~~~~~~~~
      include/linux/list.h:889:13: note: in expansion of macro 'hlist_entry_safe'
             pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
                   ^~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:2: note: in expansion of macro 'hlist_for_each_entry'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
        ^~~~~~~~~~~~~~~~~~~~
      /usr/src/zfs-2.1.7/include/linux/dcache_compat.h:74:53: note: in expansion of macro 'd_alias'
        hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
                                                           ^~~~~~~
      

      Attachments

        Activity

          People

            stancheff Shaun Tancheff
            stancheff Shaun Tancheff
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: