#!/bin/bash
if [[ -z $drivers ]]; then
    block_module_test() {
	local blockfuncs='ata_scsi_ioctl|scsi_add_host|blk_init_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device'

	 nm -uPA "$1" | egrep -q "$blockfuncs"
    }
    instmods pcmcia sd_mod scsi_dh scsi_dh_rdac scsi_dh_emc
    instmods firewire-ohci
    instmods "=drivers/pcmcia" =ide "=drivers/usb/storage"
    instmods $(filter_kernel_modules block_module_test) 
    # if not on hostonly mode, install all known filesystems if the required list is not set via the filesystems variable
    if ! [[ $hostonly ]]; then
	if [[ -z $filesystems ]]; then
	    instmods '=fs'
	else
	    instmods $filesystems
	fi
    else
	instmods $(get_fs_type "/dev/block/$(find_root_block_device)")
    fi
    # hardcoded list of exceptions
    rm -fr ${initdir}/lib/modules/*/kernel/fs/ocfs2
else
  instmods $drivers $filesystems
fi

[[ $add_drivers ]] && instmods $add_drivers

# force install of scsi_wait_scan
old_hostonly=$hostonly
hostonly=''
instmods scsi_wait_scan
hostonly=$old_hostonly

