On Fri, 2020-09-04 at 10:48 +0800, lixiaokeng wrote: > > On 2020/9/4 1:26, Martin Wilck wrote: > > Why not just quit the "do" loop in the error case > > for dm_get_major_minor()? > > > > Martin > > If dm_get_major failed at first time, it will be executed again > for some reason I don't know in the original code. Quiting the > "do" loop in the error case for dm_get_major_minor() is against > the twice attempt rule. Right. Then, to solve the problem you're concerned about, it should be sufficient to initialize both major and minor to -1, or simply refrain from printing them in the log message in the first place. At a closer look, the logic of the function is flawed; at least if get_refwwid() doesn't return a usable refwwid, there's no point in trying again. Thanks, Martin > > Lixiaokeng > > > else { > > > sprintf(dev_path, "dm-%d", minor); > > > alias = dm_mapname(major, minor); > > > + if (!alias) > > > + condlog(2, "%s: mapname not found for > > > %d:%d", > > > + param, major, minor); > > > } > > > /*if there is no mapname found, we first create the > > > device*/ > > > if (!alias && !count) { > > > - condlog(2, "%s: mapname not found for %d:%d", > > > - param, major, minor); > > > get_refwwid(CMD_NONE, param, DEV_DEVMAP, > > > vecs->pathvec, &refwwid); > > > if (refwwid) { > > > > > > . > > -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel