--- dm.c~ Fri Aug 31 11:15:24 2001 +++ dm.c Fri Aug 31 11:16:36 2001 @@ -346,7 +346,7 @@ int r, minor = MINOR(bh->b_rdev); if (minor >= MAX_DEVICES) - return -ENXIO; + goto bad_rl; rl; md = _devs[minor]; @@ -359,10 +359,8 @@ ru; r = queue_io(md, bh, rw); - if (r < 0) { - buffer_IO_error(bh); - return 0; - + if (r < 0) + goto bad_rl; } else if (r > 0) return 0; /* deferred successfully */ @@ -377,6 +375,7 @@ bad: ru; + bad_rl: buffer_IO_error(bh); return 0; }