@@ -343,6 +343,7 @@ DEFINE_HOST_PROG(VGCHANGE, vgchange, [/usr/sbin/vgchange])
DEFINE_HOST_PROG(PB_PLUGIN, pb-plugin, [/usr/sbin/pb-plugin])
DEFINE_HOST_PROG(PB_EXEC, pb-exec, [/usr/sbin/pb-exec])
DEFINE_HOST_PROG(SH, sh, [/bin/sh])
+DEFINE_HOST_PROG(SCSI_RESCAN, scsi-rescan, [/usr/sbin/scsi-rescan])
AC_ARG_WITH(
[tftp],
@@ -451,6 +451,9 @@ void device_handler_reinit(struct device_handler *handler)
discover_server_notify_config(handler->server, config);
}
+ /* Force rediscovery on SCSI devices */
+ process_run_simple(handler, pb_system_apps.scsi_rescan, NULL);
+
device_handler_reinit_sources(handler);
}
@@ -33,6 +33,7 @@ const struct pb_system_apps pb_system_apps = {
.pb_plugin = HOST_PROG_PB_PLUGIN,
.pb_exec = HOST_PROG_PB_EXEC,
.sh = HOST_PROG_SH,
+ .scsi_rescan = HOST_PROG_SCSI_RESCAN,
};
#ifndef TFTP_TYPE
@@ -18,6 +18,7 @@ struct pb_system_apps {
const char *pb_plugin;
const char *pb_exec;
const char *sh;
+ const char *scsi_rescan;
};
extern const struct pb_system_apps pb_system_apps;
@@ -12,7 +12,8 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
-dist_sbin_SCRIPTS += utils/pb-udhcpc utils/pb-plugin utils/pb-sos utils/pb-exec
+dist_sbin_SCRIPTS += utils/pb-udhcpc utils/pb-plugin utils/pb-sos \
+ utils/pb-exec utils/scsi-rescan
dist_pkglibexec_SCRIPTS = utils/pb-console
sbin_PROGRAMS += utils/pb-event utils/pb-config
new file mode 100755
@@ -0,0 +1,5 @@
+#/bin/sh
+
+for host in /sys/class/scsi_host/host*; do
+ echo "- - -" > ${host}/scan
+done
Explicitly rescan SCSI devices on reinit rather than just remounting them in case a device did not init properly on boot. Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com> --- configure.ac | 1 + discover/device-handler.c | 3 +++ lib/system/system.c | 1 + lib/system/system.h | 1 + utils/Makefile.am | 3 ++- utils/scsi-rescan | 5 +++++ 6 files changed, 13 insertions(+), 1 deletion(-) create mode 100755 utils/scsi-rescan