Details
-
Bug
-
Resolution: Fixed
-
Critical
-
None
-
3
-
14588
Description
As noted by recent comment in LU-4416 builds of lustre on 3.12 kernels no longer work. Suspect this is due to the recent landing of a fix from LU-4906 in master. Can't even build clients which did work until very recently. example errors:
CC [M] /home/bogl/lustre-release/lustre/llite/dir.o /home/bogl/lustre-release/lustre/llite/dir.c: In function bll_dir_readb: /home/bogl/lustre-release/lustre/llite/dir.c:249:4: error: implicit declaration of function bfilldirb [-Werror=implicit-function-declaration] done = filldir(cookie, ent->lde_name, namelen, lhash, ^ /home/bogl/lustre-release/lustre/llite/dir.c:249:19: error: bcookieb undeclared (first use in this function) done = filldir(cookie, ent->lde_name, namelen, lhash, ^ /home/bogl/lustre-release/lustre/llite/dir.c:249:19: note: each undeclared identifier is reported only once for each function it appears in cc1: all warnings being treated as errors scripts/Makefile.build:324: recipe for target '/home/bogl/lustre-release/lustre/llite/dir.o' failed make[6]: *** [/home/bogl/lustre-release/lustre/llite/dir.o] Error 1 scripts/Makefile.build:485: recipe for target '/home/bogl/lustre-release/lustre/llite' failed make[5]: *** [/home/bogl/lustre-release/lustre/llite] Error 2 scripts/Makefile.build:485: recipe for target '/home/bogl/lustre-release/lustre' failed make[4]: *** [/home/bogl/lustre-release/lustre] Error 2 Makefile:1269: recipe for target '_module_/home/bogl/lustre-release' failed make[3]: *** [_module_/home/bogl/lustre-release] Error 2 make[3]: Leaving directory '/home/bogl/linux-3.12.21-2' autoMakefile:1022: recipe for target 'modules' failed make[2]: *** [modules] Error 2 make[2]: Leaving directory '/home/bogl/lustre-release' autoMakefile:569: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/bogl/lustre-release' autoMakefile:474: recipe for target 'all' failed make: *** [all] Error 2
I think this is due to recent changes to readdir code in lustre/llite/dir.c that don't take into account the HAVE_DIR_CONTEXT case from autoconf. Code was adjusted elsewhere in lustre to adapt to HAVE_DIR_CONTEXT being #define'ed or #undef'ed.
Attachments
Issue Links
- is related to
-
LU-4416 support for 3.12 linux kernel
-
- Resolved
-
It very well might have been an issue for rhel7 too. It's so very hard to predict what RH chooses to back port. Their 3.10 has many features from 3.12 and even later kernels. I'm glad they didn't back port the readdir changes.