The return values of dm_get_map, disassemble_map in get_mpvec were not checked. Use update_multipath_table/status to instead of them. Signed-off-by: Lixiaokeng <lixiaokeng@xxxxxxxxxx> Signed-off-by: Zhiqiang Liu <liuzhiqiang26@xxxxxxxxxx> Signed-off-by: Linfeilong <linfeilong@xxxxxxxxxx> --- libmpathpersist/mpath_persist.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c index e7256049..046fda21 100644 --- a/libmpathpersist/mpath_persist.c +++ b/libmpathpersist/mpath_persist.c @@ -323,7 +323,6 @@ get_mpvec (vector curmp, vector pathvec, char * refwwid) { int i; struct multipath *mpp; - char params[PARAMS_SIZE], status[PARAMS_SIZE]; vector_foreach_slot (curmp, mpp, i){ /* @@ -341,13 +340,9 @@ get_mpvec (vector curmp, vector pathvec, char * refwwid) if (refwwid && strncmp (mpp->alias, refwwid, WWID_SIZE - 1)) continue; - dm_get_map(mpp->alias, &mpp->size, params); - condlog(3, "params = %s", params); - dm_get_status(mpp->alias, status); - condlog(3, "status = %s", status); - disassemble_map (pathvec, params, mpp); - update_pathvec_from_dm(pathvec, mpp, DI_CHECKER); - disassemble_status (status, mpp); + if (update_multipath_table(mpp, pathvec, DI_CHECKER) != DMP_OK || + update_multipath_status(mpp) != DMP_OK) + continue; } return MPATH_PR_SUCCESS ; -- -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel