Details

    • Bug
    • Resolution: Fixed
    • Blocker
    • Lustre 2.7.0
    • None
    • None
    • 3
    • 16698

    Description

      The recent commit 0ad4f8a4227ed7dd93fec99d33c6bb25056473fc for "LU-5275 lprocfs: remove last of non seq data structs and functions." breaks some lustre builds. In particular the problem comes from the renaming of the lustre internal routine lprocfs_try_remove_proc_entry() to remove_proc_subtree(). Newer linux kernels have their own exported remove_proc_subtree() API that conflicts. This is true in both the latest el6.6 kernel and the el7 kernel.

      My first inclination was to add autoconf support for leaving out lustre's own remove_proc_subtree() if there is one in linux, but on careful examination it appears the linux instances aren't quite identical to the lustre implementation. I think the best course is to change the lustre routine back to its original name, so it won't conflict. I will push a patch to do so.

      The only reason this hasn't shown up in current review builds is that it is only a problem in the newest el6.6 (not yet landed) and in server builds. We aren't doing el7 server builds yet.

      Attachments

        Issue Links

          Activity

            [LU-5983] builds broken by LU-5275 fix

            Closing ticket per last comment. Patch was reverted.

            jlevi Jodi Levi (Inactive) added a comment - Closing ticket per last comment. Patch was reverted.

            Patch has been reverted. We can close this ticket.

            simmonsja James A Simmons added a comment - Patch has been reverted. We can close this ticket.

            Patch http://review.whamcloud.com/#/c/12235 should resolve this.

            simmonsja James A Simmons added a comment - Patch http://review.whamcloud.com/#/c/12235 should resolve this.

            The latest patch from LU-5275 might of fixed it. Will see the fall out in Maloo soon.

            simmonsja James A Simmons added a comment - The latest patch from LU-5275 might of fixed it. Will see the fall out in Maloo soon.

            just a simple rename didn't work. see build failure of http://review.whamcloud.com/12931

            bogl Bob Glossman (Inactive) added a comment - just a simple rename didn't work. see build failure of http://review.whamcloud.com/12931

            James, I see EXPORT_SYMBOL(remove_proc_subtree). I don't see any export proc_remove

            bogl Bob Glossman (Inactive) added a comment - James, I see EXPORT_SYMBOL(remove_proc_subtree). I don't see any export proc_remove
            simmonsja James A Simmons added a comment - - edited

            Dmitry in the new patch I fixed that. Bob does RHEL6.6 define proc_remove()?

            simmonsja James A Simmons added a comment - - edited Dmitry in the new patch I fixed that. Bob does RHEL6.6 define proc_remove()?

            Bob Glossman (bob.glossman@intel.com) uploaded a new patch: http://review.whamcloud.com/12931
            Subject: LU-5983 build: fix build failures from recent landing
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 85fcc6f4df4718c9ec44d596ee0f5fed226303a4

            gerrit Gerrit Updater added a comment - Bob Glossman (bob.glossman@intel.com) uploaded a new patch: http://review.whamcloud.com/12931 Subject: LU-5983 build: fix build failures from recent landing Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 85fcc6f4df4718c9ec44d596ee0f5fed226303a4

            The issue is you define following function:

            #ifndef HAVE_ONLY_PROCFS_SEQ
            extern void remove_proc_subtree(const char *name,
            				struct proc_dir_entry *parent);
            #endif
            

            but in Linux headers we have following:

            extern int remove_proc_subtree(const char *name, struct proc_dir_entry *parent);
            
            dmiter Dmitry Eremin (Inactive) added a comment - The issue is you define following function: #ifndef HAVE_ONLY_PROCFS_SEQ extern void remove_proc_subtree( const char *name, struct proc_dir_entry *parent); #endif but in Linux headers we have following: extern int remove_proc_subtree( const char *name, struct proc_dir_entry *parent);

            James, which patch you are talking about? In http://review.whamcloud.com/12235 you have the same issue. I cannot find other pathes for LU-5275.

            dmiter Dmitry Eremin (Inactive) added a comment - James, which patch you are talking about? In http://review.whamcloud.com/12235 you have the same issue. I cannot find other pathes for LU-5275 .

            People

              bogl Bob Glossman (Inactive)
              bogl Bob Glossman (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: