# 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
	select ASYNC_XOR
	default SCSI_OSD_ULD

config EXOFS_FS
	tristate "exofs: OSD based file system support"
	depends on SCSI_OSD_ULD
	help
	  EXOFS is a file system that uses an OSD storage device,
	  as its backing storage.

# Debugging-related stuff
config EXOFS_DEBUG
	bool "Enable debugging"
	depends on EXOFS_FS
	help
	  This option enables EXOFS debug prints.
