ore: FIX breakage when MISC_FILESYSTEMS is not set

From: Boaz Harrosh
Date: Mon Nov 28 2011 - 19:19:42 EST



As Reported by Randy Dunlap

When MISC_FILESYSTEMS is not enabled:

fs/built-in.o: In function `objio_alloc_io_state':
objio_osd.c:(.text+0xcb525): undefined reference to `ore_get_rw_state'
fs/built-in.o: In function `_write_done':
objio_osd.c:(.text+0xcb58d): undefined reference to `ore_check_io'
fs/built-in.o: In function `_read_done':
...

When MISC_FILESYSTEMS, which is more of a GUI thing then anything else,
is not selected. exofs/Kconfig is never examined during Kconfig,
and it can not do it's magic stuff to automatically select everything
needed.

The solution is to force all users of ORE (exofs, nfs) to manually
select everything auto-magically selected before.

(This is why it is a bad idea to put libraries in random parts of
the tree)

Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxx>
Signed-off-by: Boaz Harrosh <bharrosh@xxxxxxxxxxx>
---
fs/exofs/Kconfig | 17 +++++++++--------
fs/nfs/Kconfig | 2 ++
2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/fs/exofs/Kconfig b/fs/exofs/Kconfig
index da42f32..6b05d99 100644
--- a/fs/exofs/Kconfig
+++ b/fs/exofs/Kconfig
@@ -1,17 +1,18 @@
-# Note ORE needs to "select ASYNC_XOR". So Not to force multiple selects
-# for every ORE user we do it like this. Any user should add itself here
-# at the "depends on EXOFS_FS || ..." with an ||. The dependencies are
-# selected here, and we default to "ON". So in effect it is like been
-# selected by any of the users.
+# ORE - Objects Raid Engine (libore.ko)
+# This library needs to be selected by it's users for example the below EXOFS
+# filesystem.
+# All users must do:
+# depends on SCSI_OSD_ULD
+# select ASYNC_XOR
+# select ORE
config ORE
tristate
- depends on EXOFS_FS || PNFS_OBJLAYOUT
- select ASYNC_XOR
- default SCSI_OSD_ULD

config EXOFS_FS
tristate "exofs: OSD based file system support"
depends on SCSI_OSD_ULD
+ select ASYNC_XOR
+ select ORE
help
EXOFS is a file system that uses an OSD storage device,
as its backing storage.
diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
index dbcd821..3708d76 100644
--- a/fs/nfs/Kconfig
+++ b/fs/nfs/Kconfig
@@ -96,6 +96,8 @@ config PNFS_BLOCK
config PNFS_OBJLAYOUT
tristate
depends on NFS_FS && NFS_V4_1 && SCSI_OSD_ULD
+ select ASYNC_XOR
+ select ORE
default m

config ROOT_NFS
--
1.7.6.4


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/