Re: [PATCH] iSeries virtual disk

From: Christoph Hellwig
Date: Fri Feb 27 2004 - 07:14:50 EST


> In theory you can hot add virtual disks to an iSeries partition (up to 64
> disks per partition). We used to support that by registering all 32 disks
> with Linux and then probing the hypervisor when any disk was opened at
> which point the hypervisor lets us know that the value of viod_max_disk
> should be increased. I took that code out in the name of simplicity and
> in the hope of getting the driver accepted. (In fact it was your comments
> that made me do it.)

Sure - above comments still stand in a hot-add enviroment. ->open can't
happen before gendisk is registered, hot-add or not. And the module_init
loop is bogus hot-add or not.

> I will investigate your suggestion of using
> blk_register_region for the disks that don't exist yet over the next while
> at which point (assuming I can figure out how to do it) the value of
> viodasd_max_disk may again rise over time.

But this doesn't make the current code any better. With hot-adding disks
you would actually need a variable like viodasd_max_disk that replaces the
current i loop iteractor in module_init with a file-wide variable, but that's
it basically.

> It doesn't break out of the loop when probe_disk fails because it is
> possible to have gaps in the list if disks (e.g. I have have disks 1 2 4 7
> and viodasd_max_disk will be 7 but probe_disk will "fail" for the other
> disks).

That's not how I read your code. But to actually understand what it's
doing we need to know what open_data.max_disk actually is.

is this the maximum number of disks currently configured (if so the
interface would be absolutely braindead, but the current code would
match your above description although beein rather confusing).

Or does it return the currently opened disks index?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/