All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vasily Averin <vvs@sw.ru>
To: Markus Lidel <Markus.Lidel@shadowconnect.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Jens Axboe <axboe@kernel.dk>,
	linux-kernel@vger.kernel.org, devel@openvz.org
Cc: Chuck Ebbert <cebbert@redhat.com>, Sam Hokin <sam@ims.net>,
	Mark Gray <mvg001@markvgray.com>,
	Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Subject: [PATCH 2.6.21-rc5] [I2O] block IO errors on i2o disk
Date: Mon, 26 Mar 2007 12:07:36 +0400	[thread overview]
Message-ID: <46077F48.2000105@sw.ru> (raw)

I2O subsystem has been broken in mainstream several months ago (after 2.6.18).
The following patch from Jens Axboe splits struct request ->flags into two
parts: cmd_type and cmd_flags
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4aff5e2333c9a1609662f2091f55c3f6fffdad36

In i2o layer this patch has replaced flag REQ_SPECIAL by the according cmd_type.
However i2o has used REQ_SPECIAL not as command type but as driver-specific flag
for the debug purposes. As result all i2o requests have type "special" now, are
not processed to the hardware and fail with I/O error:

 i2o/hda:<3>Buffer I/O error on device i2o/hda, logical block 0
Buffer I/O error on device i2o/hda, logical block 0
Buffer I/O error on device i2o/hda, logical block 0
 unable to read partition table
block-osm: device added (TID: 207): i2o/hda

The following patch removes the extra debug checks without any drawbacks and
restores the normal driver's work.

Signed-off-by:	Vasily Averin <vvs@sw.ru>

--- 2.6.21-rc5/drivers/message/i2o/i2o_block.c	2007-02-04 21:44:54.000000000 +0300
+++ 2.6.21-rc5/drivers/message/i2o/i2o_block.c	2007-03-26 11:03:52.000000000 +0400
@@ -390,13 +390,6 @@ static int i2o_block_prep_req_fn(struct
 		return BLKPREP_KILL;
 	}

-	/* request is already processed by us, so return */
-	if (blk_special_request(req)) {
-		osm_debug("REQ_SPECIAL already set!\n");
-		req->cmd_flags |= REQ_DONTPREP;
-		return BLKPREP_OK;
-	}
-
 	/* connect the i2o_block_request to the request */
 	if (!req->special) {
 		ireq = i2o_block_request_alloc();
@@ -408,11 +401,8 @@ static int i2o_block_prep_req_fn(struct
 		ireq->i2o_blk_dev = i2o_blk_dev;
 		req->special = ireq;
 		ireq->req = req;
-	} else
-		ireq = req->special;
-
+	}
 	/* do not come back here */
-	req->cmd_type = REQ_TYPE_SPECIAL;
 	req->cmd_flags |= REQ_DONTPREP;

 	return BLKPREP_OK;

                 reply	other threads:[~2007-03-26  8:07 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46077F48.2000105@sw.ru \
    --to=vvs@sw.ru \
    --cc=Markus.Lidel@shadowconnect.com \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=cebbert@redhat.com \
    --cc=devel@openvz.org \
    --cc=enrico.scholz@informatik.tu-chemnitz.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mvg001@markvgray.com \
    --cc=sam@ims.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.