Subject: Re: [osd-dev] [PATCH v3] ore: FIX breakage when MISC_FILESYSTEMS is not set

From: Randy Dunlap <[email-masked]>
Date: Wed, 30 Nov 2011 10:00:18 -0800

On 11/29/2011 05:00 PM, Boaz Harrosh wrote:
> On 11/29/2011 03:35 PM, Boaz Harrosh wrote:
>>
>> As Reported by Randy Dunlap
>>
> 
> Randy Hi
> 
> I think I prefer this simple solution for now, instead of
> the complete move of the ore to lib/

sounds good to me.

> It solves the warning problem you reported and let us
> keep the convenience of selecting everything in one place. As
> was said there are more dependencies on the way.
> 
> I will look into the additional ASYNC_CORE and XOR_BLOCKS selects
> you mentioned. For some reason it works but I'll try to find a
> way to break it or prove It is sound.
> 
> Please advise?

I'm not terribly worried about them.  If they work, that's fine.
If they break some day, it's easy to fix.
or if you prefer to fix it now, you could add something like:

# for ASYNC_XOR selects:
	select ASYNC_CORE
	select XOR_BLOCKS

Either way is OK with me.

Thanks.

> Thanks
> Heart
> 
>> 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.
>>
>> We must split exofs/Kconfig in two. The ore one is always included.
>> And the exofs one is left in it's old place in the menu.
>>
>> Signed-off-by: Boaz Harrosh <[email-masked]>
>> ---
>>  fs/Kconfig           |    2 ++
>>  fs/exofs/Kconfig     |   11 -----------
>>  fs/exofs/ore.Kconfig |   12 ++++++++++++
>>  3 files changed, 14 insertions(+), 11 deletions(-)
>>  create mode 100644 fs/exofs/ore.Kconfig
>>
>> diff --git a/fs/Kconfig b/fs/Kconfig
>> index 5f4c45d..fd7bfef 100644
>> --- a/fs/Kconfig
>> +++ b/fs/Kconfig
>> @@ -218,6 +218,8 @@ source "fs/exofs/Kconfig"
>>  
>>  endif # MISC_FILESYSTEMS
>>  
>> +source "fs/exofs/ore.Kconfig"
>> +
>>  menuconfig NETWORK_FILESYSTEMS
>>  	bool "Network File Systems"
>>  	default y
>> diff --git a/fs/exofs/Kconfig b/fs/exofs/Kconfig
>> index da42f32..86194b2 100644
>> --- a/fs/exofs/Kconfig
>> +++ b/fs/exofs/Kconfig
>> @@ -1,14 +1,3 @@
>> -# 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.
>> -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
>> diff --git a/fs/exofs/ore.Kconfig b/fs/exofs/ore.Kconfig
>> new file mode 100644
>> index 0000000..1ca7fb7
>> --- /dev/null
>> +++ b/fs/exofs/ore.Kconfig
>> @@ -0,0 +1,12 @@
>> +# ORE - Objects Raid Engine (libore.ko)
>> +#
>> +# 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.
>> +config ORE
>> +	tristate
>> +	depends on EXOFS_FS || PNFS_OBJLAYOUT
>> +	select ASYNC_XOR
>> +	default SCSI_OSD_ULD
> 
> --

-- 
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***