Re: A possible direction for the next LVM driver

Jens Axboe
2001-08-31T09:21:15Z

[-- Attachment #1: Type: text/plain, Size: 883 bytes --]

On Thu, Aug 30 2001, Joe Thornber wrote:
> Hi,
>
> I'm working on the next iteration of the LVM driver, specifically
> trying to address the critism directed at the rather ugly ioctl
> interface. The code has reached the stage where it works and it's
> possible to see what I'm aiming for. I would appreciate it if people
> could spare the time to review this and give me feedback. If there is
> general agreement that this is moving in the right direction then the
> next major version of LVM may be based around a future version of this
> driver. Please CC me in replies. The code can be found at:
>
> ftp://ftp.sistina.com/pub/LVM2/device-mapper/device-mapper.tar.bz2

Looks interesting, here's patch to fix possible infinite loop in your
make_request_fn. Another quick note -- you might want to consider
slab'ifying the io_hook allocation/deallocation...

--
Jens Axboe

[-- Attachment #2: dm-1 --]
[-- Type: text/plain, Size: 513 bytes --]

--- 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;
}