your change seems to fix a clear but to me. > - if (*bmajor < 0) > + if ((bdev != NULL) && (*bmajor < 0)) > *bmajor = conv->d_bmajor;
there's also this line i'm curious about, just below:
if (*bmajor != conv->d_bmajor || *cmajor != conv->d_cmajor) {
error = EINVAL;
goto out;
should the first part also depend upon either bdev != NULL or
perhaps (*bmajor >= 0 && bdev == NULL) as the following code
uses...
.mrg.
