<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>
<div>On addition of first path, reservation_key parameter is not selected before</div>
<div>handling persistent reservations. This leads multipathd to not perform</div>
<div>registration on the path even when registrations exist on the LUN.</div>
<div><br>
</div>
<div>Added code to select "reservation_key" parameter value before calling</div>
<div>PR handler during addition of new path to a new map.</div>
<div><br>
</div>
<div>Signed-off-by: ShivaKrishna Merla <shiva.krishna@nimblestorage.com></div>
<div>---</div>
<div> libmultipath/configure.c |    5 ++++-</div>
<div> multipathd/main.c        |    2 ++</div>
<div> 2 files changed, 6 insertions(+), 1 deletions(-)</div>
<div><br>
</div>
<div>diff --git a/libmultipath/configure.c b/libmultipath/configure.c</div>
<div>index 24ad948..2071aa4 100644</div>
<div>--- a/libmultipath/configure.c</div>
<div>+++ b/libmultipath/configure.c</div>
<div>@@ -287,7 +287,10 @@ setup_map (struct multipath * mpp, char * params, int params_size)</div>
<div> <span class="Apple-tab-span" style="white-space:pre"> </span>select_gid(mpp);</div>
<div> <span class="Apple-tab-span" style="white-space:pre"> </span>select_fast_io_fail(mpp);</div>
<div> <span class="Apple-tab-span" style="white-space:pre"> </span>select_dev_loss(mpp);</div>
<div>-<span class="Apple-tab-span" style="white-space:pre"> </span>select_reservation_key(mpp);</div>
<div>+</div>
<div>+<span class="Apple-tab-span" style="white-space:pre"> </span>if (!mpp->reservation_key)</div>
<div>+<span class="Apple-tab-span" style="white-space:pre"> </span>select_reservation_key(mpp);</div>
<div>+</div>
<div> <span class="Apple-tab-span" style="white-space:pre"> </span>select_retain_hwhandler(mpp);</div>
<div> <span class="Apple-tab-span" style="white-space:pre"> </span>select_deferred_remove(mpp);</div>
<div> <span class="Apple-tab-span" style="white-space:pre"> </span>select_delay_watch_checks(mpp);</div>
<div>diff --git a/multipathd/main.c b/multipathd/main.c</div>
<div>index 04f6d02..bf3423f 100644</div>
<div>--- a/multipathd/main.c</div>
<div>+++ b/multipathd/main.c</div>
<div>@@ -539,6 +539,8 @@ rescan:</div>
<div> <span class="Apple-tab-span" style="white-space:pre"> </span>goto fail; /* leave path added to pathvec */</div>
<div> <span class="Apple-tab-span" style="white-space:pre"> </span>}</div>
<div> </div>
<div>+<span class="Apple-tab-span" style="white-space:pre"> </span>/* select configured reservation key */</div>
<div>+<span class="Apple-tab-span" style="white-space:pre"> </span>select_reservation_key(mpp);</div>
<div> <span class="Apple-tab-span" style="white-space:pre"> </span>/* persistent reseravtion check*/</div>
<div> <span class="Apple-tab-span" style="white-space:pre"> </span>mpath_pr_event_handle(pp);</div>
<div>--</div>
</div>
<div><br>
</div>
</body>
</html>