For some block device protocols, the active path may continue to
receive xfer_window_changed() notifications during normal use. These
currently result in the active path being erroneously closed.
Fix by ignoring any xfer_window_changed() messages if this path is
already the active path.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
static void sanpath_step ( struct san_path *sanpath ) {
struct san_device *sandev = sanpath->sandev;
+ /* Ignore if we are already the active device */
+ if ( sanpath == sandev->active )
+ return;
+
/* Wait until path has become available */
if ( ! xfer_window ( &sanpath->block ) )
return;