On Friday, November 20, 2009 at 21:55:00 UTC, Chandra Seetharaman wrote : > Looks good to me except one comment below. > > > + if ((!pp->size) || (mpp->size != pp->size)) { > > + condlog(0, "%s: failed to add > new path %s, " > > + "device size mismatch", > > Appropriate error message for the two different cases > (pp->size = 0 and > mpp->size!= pp->size) would be the right thing to do, IMO. > > > + devname, pp->dev); Chandra, Thanks for you comment. I have made the changes as per your comment. Please let me if it looks fine now. Thanks, Vijay --- multipath should only add paths with valid size to the map. If there is mismatch between map and path size it should not be added. This patch also check if the device size is not 0 before adding path. During device discovery if READ_CAPACITY fails, sd device get attached with device size 0. multipath should not allow the such device to get added in the map. Signed-off-by: Vijay Chauhan <vijay.chauhan@xxxxxxx> --- diff -uprN multipath-tools-orig/multipathd/main.c multipath-tools/multipathd/main.c --- multipath-tools-orig/multipathd/main.c 2009-11-20 23:39:09.000000000 +0530 +++ multipath-tools/multipathd/main.c 2009-11-23 16:37:16.000000000 +0530 @@ -396,8 +396,29 @@ ev_add_path (char * devname, struct vect return 2; } mpp = pp->mpp = find_mp_by_wwid(vecs->mpvec, pp->wwid); + if (!pp->size) { + condlog(0, "%s: not a valid path %s, " + " device size is 0 ", devname, pp->dev); + int i = find_slot(vecs->pathvec, (void *)pp); + if (i != -1) + vector_del_slot(vecs->pathvec, i); + free_path(pp); + return 1; + } + rescan: if (mpp) { + if (mpp->size != pp->size) { + condlog(0, "%s: failed to add new path %s, " + "device size mismatch", + devname, pp->dev); + int i = find_slot(vecs->pathvec, (void *)pp); + if (i != -1) + vector_del_slot(vecs->pathvec, i); + free_path(pp); + return 1; + } + condlog(4,"%s: adopting all paths for path %s", mpp->alias, pp->dev); if (adopt_paths(vecs->pathvec, mpp)) -- -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel