Subject: ore: FIX breakage when MISC_FILESYSTEMS is not set

From: Boaz Harrosh <[email-masked]>
Date: Mon, 28 Nov 2011 16:13:03 -0800

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-/[email-masked]>
Signed-off-by: Boaz Harrosh <[email-masked]>
---
 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-nfs" in
the body of a message to [email-masked]
More majordomo info at  http://vger.kernel.org/majordomo-info.html