scsi_wait_scan.c 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. #include <linux/module.h>
  13. #include <linux/device.h>
  14. #include "scsi_priv.h"
  15. static int __init wait_scan_init(void)
  16. {
  17. /*
  18. * First we need to wait for device probing to finish;
  19. * the drivers we just loaded might just still be probing
  20. * and might not yet have reached the scsi async scanning
  21. */
  22. wait_for_device_probe();
  23. /*
  24. * and then we wait for the actual asynchronous scsi scan
  25. * to finish.
  26. */
  27. scsi_complete_async_scans();
  28. return 0;
  29. }
  30. static void __exit wait_scan_exit(void)
  31. {
  32. }
  33. MODULE_DESCRIPTION("SCSI wait for scans");
  34. MODULE_AUTHOR("James Bottomley");
  35. MODULE_LICENSE("GPL");
  36. late_initcall(wait_scan_init);
  37. module_exit(wait_scan_exit);