Commit:     fe6b8e76d920b93fd445382aff7ff24082af8874
Parent:     6c5f57c7884a7e0806ae9af86de243321cab4953
Author:     Stefan Weinhuber <[EMAIL PROTECTED]>
AuthorDate: Tue Feb 5 16:50:47 2008 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Tue Feb 5 16:51:00 2008 +0100

    [S390] dasd: fix panic caused by alias device offline
    When an alias device is set offline while it is in use this may
    result in a panic in the cleanup part of the dasd_block_tasklet.
    The problem here is that there may exist some ccw requests that were
    originally created for the alias device and transferred to the base
    device when the alias was set offline. When these request are
    cleaned up later, the discipline pointer in the alias device may not
    be valid anymore. To fix this use the base device discipline to find
    the cleanup function.
    Signed-off-by: Stefan Weinhuber <[EMAIL PROTECTED]>
    Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
 drivers/s390/block/dasd.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index ab4f64c..d984e0f 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -1706,7 +1706,7 @@ static void __dasd_cleanup_cqr(struct dasd_ccw_req *cqr)
        req = (struct request *) cqr->callback_data;
        dasd_profile_end(cqr->block, cqr, req);
-       status = cqr->memdev->discipline->free_cp(cqr, req);
+       status = cqr->block->base->discipline->free_cp(cqr, req);
        if (status <= 0)
                error = status ? status : -EIO;
        dasd_end_request(req, error);
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to