Difficulty with RH 6.x and LVM
Forwarded message from Eric M. Hopper <[email protected]> ...
-------- Original Message --------
From: "Eric M. Hopper" <[email protected]>
Subject: Difficulty with RH 6.x and LVM
Message-ID: <[email protected]>
The lines in the patches assume that the kernel to be patched
calls md_make_request like this:
md_make_request(MINOR (bh[i]->b_dev), rw, bh[i]);
The RedHat 6.x kernels seem to have a different md_make_request
that they call like this:
md_make_request(bh[i], rw);
As you may notice, there is a large discrepancy here that is
rather worrisome, since the change to use rdev instead of dev can't be made in any way.
In drivers/block/md.c, RedHat's md_make_request looks like this:
int md_make_request (struct buffer_head * bh, int rw)
{
int err;
mddev_t *mddev = kdev_to_mddev(bh->b_dev);
if (!mddev || !mddev->pers) {
err = -ENXIO;
goto out;
}
if (mddev->pers->make_request) {
if (buffer_locked(bh)) {
err = 0;
goto out;
}
set_bit(BH_Lock, &bh->b_state);
if (rw == WRITE || rw == WRITEA) {
if (!buffer_dirty(bh)) {
bh->b_end_io(bh, buffer_uptodate(bh));
err = 0;
goto out;
}
}
if (rw == READ || rw == READA) {
if (buffer_uptodate(bh)) {
bh->b_end_io(bh, buffer_uptodate(bh));
err = 0;
goto out;
}
}
err = mddev->pers->make_request(mddev, rw, bh);
} else {
make_request (MAJOR(bh->b_rdev), rw, bh);
err = 0;
}
out:
return err;
}Any suggestions as to how I apply the patch?
Thanks,
--
Its name is Public Opinion. It is held in reverence. It settles everything.
Some think it is the voice of God. Loyalty to petrified opinion never yet
broke a chain or freed a human soul. ---Mark Twain
-- Eric Hopper ([email protected]
http://omnifarious.mn.org/~hopper) --