1/* 2 * scsi_wait_scan.c 3 * 4 * Copyright (C) 2006 James Bottomley <James.Bottomley@SteelEye.com> 5 * 6 * This is a simple module to wait until all the async scans are 7 * complete. The idea is to use it in initrd/initramfs scripts. You 8 * modprobe it after all the modprobes of the root SCSI drivers and it 9 * will wait until they have all finished scanning their busses before 10 * allowing the boot to proceed 11 */ 12 13#include <linux/module.h> 14#include <linux/device.h> 15#include <scsi/scsi_scan.h> 16 17static int __init wait_scan_init(void) 18{ 19 /* 20 * First we need to wait for device probing to finish; 21 * the drivers we just loaded might just still be probing 22 * and might not yet have reached the scsi async scanning 23 */ 24 wait_for_device_probe(); 25 /* 26 * and then we wait for the actual asynchronous scsi scan 27 * to finish. 28 */ 29 scsi_complete_async_scans(); 30 return 0; 31} 32 33static void __exit wait_scan_exit(void) 34{ 35} 36 37MODULE_DESCRIPTION("SCSI wait for scans"); 38MODULE_AUTHOR("James Bottomley"); 39MODULE_LICENSE("GPL"); 40 41late_initcall(wait_scan_init); 42module_exit(wait_scan_exit); 43