[LU-5983] builds broken by LU-5275 fix Created: 04/Dec/14  Updated: 09/Dec/14  Resolved: 09/Dec/14

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.7.0

Type: Bug Priority: Blocker
Reporter: Bob Glossman (Inactive) Assignee: Bob Glossman (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Related
is related to LU-5275 clean up technical debt for proc_dir_... Resolved
Severity: 3
Rank (Obsolete): 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.



 Comments   
Comment by James A Simmons [ 04/Dec/14 ]

I have one last patch for LU-5275 coming which should address these problems.

Comment by Dmitry Eremin (Inactive) [ 04/Dec/14 ]

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.

Comment by Dmitry Eremin (Inactive) [ 04/Dec/14 ]

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);
Comment by Gerrit Updater [ 04/Dec/14 ]

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

Comment by James A Simmons [ 04/Dec/14 ]

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

Comment by Bob Glossman (Inactive) [ 04/Dec/14 ]

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

Comment by Bob Glossman (Inactive) [ 04/Dec/14 ]

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

Comment by James A Simmons [ 04/Dec/14 ]

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

Comment by James A Simmons [ 05/Dec/14 ]

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

Comment by James A Simmons [ 07/Dec/14 ]

Patch has been reverted. We can close this ticket.

Comment by Jodi Levi (Inactive) [ 09/Dec/14 ]

Closing ticket per last comment. Patch was reverted.

Generated at Sat Feb 10 01:56:12 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.