From 414b4fc9c531ceb15607f7c6edd8a959e0bd3065 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 28 Mar 2017 18:58:47 +0300 Subject: [PATCH] [block] Ignore redundant xfer_window_changed() messages 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 --- src/core/sanboot.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/core/sanboot.c b/src/core/sanboot.c index 7dbf03db..03beae79 100644 --- a/src/core/sanboot.c +++ b/src/core/sanboot.c @@ -282,6 +282,10 @@ static size_t sanpath_block_window ( struct san_path *sanpath __unused ) { 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;