Re: [BUG 2.6.32] md/raid1: barrier disabling does not work correctlyin all cases

Re: [BUG 2.6.32] md/raid1: barrier disabling does not work correctlyin all cases

am 26.01.2011 14:55:16 von Paul Clements

--001636c5a9efd1e798049ac02e1e
Content-Type: text/plain; charset=ISO-8859-1

On Thu, Jan 20, 2011 at 3:25 PM, NeilBrown wrote:

> Nonetheless, I think the correct fix is to add a special case for retrying a
> zero-length.
>
> Something like this maybe?

Close, but no cigar...

Attached is a modified patch, which does the extra necessary work
(bitmap_endwrite, md_write_end) on the bio before failing it.

Does this look correct? It seems to work.

Thanks again Neil.

--
Paul

--001636c5a9efd1e798049ac02e1e
Content-Type: text/x-patch; charset=US-ASCII; name="raid1-2.6.32-barrier-retry-fix-2.diff"
Content-Disposition: attachment;
filename="raid1-2.6.32-barrier-retry-fix-2.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gjeamks90

LS0tIGxpbnV4LTIuNi4zMi03MS5lbDYueDg2XzY0L2RyaXZlcnMvbWQvcmFp ZDEuYy5QUklTVElO
RQkyMDExLTAxLTE0IDE0OjUxOjU2Ljk1OTgwOTY2OSAtMDUwMAorKysgbGlu dXgtMi42LjMyLTcx
LmVsNi54ODZfNjQvZHJpdmVycy9tZC9yYWlkMS5jCTIwMTEtMDEtMjYgMDg6 NDQ6MjAuMTc2OTM2
MjM4IC0wNTAwCkBAIC0yMzYsMTQgKzIzNiwxOCBAQCBzdGF0aWMgdm9pZCBy YWlkX2VuZF9iaW9f
aW8ocjFiaW9fdCAqcjFfCiAKIAkvKiBpZiBub2JvZHkgaGFzIGRvbmUgdGhl IGZpbmFsIGVuZGlv
IHlldCwgZG8gaXQgbm93ICovCiAJaWYgKCF0ZXN0X2FuZF9zZXRfYml0KFIx QklPX1JldHVybmVk
LCAmcjFfYmlvLT5zdGF0ZSkpIHsKKwkJaW50IGVyciA9IDA7CiAJCVBSSU5U SyhLRVJOX0RFQlVH
ICJyYWlkMTogc3luYyBlbmQgJXMgb24gc2VjdG9ycyAlbGx1LSVsbHVcbiIs CiAJCQkoYmlvX2Rh
dGFfZGlyKGJpbykgPT0gV1JJVEUpID8gIndyaXRlIiA6ICJyZWFkIiwKIAkJ CSh1bnNpZ25lZCBs
b25nIGxvbmcpIGJpby0+Ymlfc2VjdG9yLAogCQkJKHVuc2lnbmVkIGxvbmcg bG9uZykgYmlvLT5i
aV9zZWN0b3IgKwogCQkJCShiaW8tPmJpX3NpemUgPj4gOSkgLSAxKTsKIAot CQliaW9fZW5kaW8o
YmlvLAotCQkJdGVzdF9iaXQoUjFCSU9fVXB0b2RhdGUsICZyMV9iaW8tPnN0 YXRlKSA/IDAgOiAt
RUlPKTsKKwkJaWYgKHRlc3RfYml0KFIxQklPX0JhcnJpZXJSZXRyeSwgJnIx X2Jpby0+c3RhdGUp
KQorCQkJZXJyID0gLUVPUE5PVFNVUFA7CisJCWVsc2UgaWYgKCF0ZXN0X2Jp dChSMUJJT19VcHRv
ZGF0ZSwgJnIxX2Jpby0+c3RhdGUpKQorCQkJZXJyID0gLUVJTzsKKwkJYmlv X2VuZGlvKGJpbywg
ZXJyKTsKIAl9CiAJZnJlZV9yMWJpbyhyMV9iaW8pOwogfQpAQCAtMTYyMyw2 ICsxNjI3LDE4IEBA
IHN0YXRpYyB2b2lkIHJhaWQxZChtZGRldl90ICptZGRldikKIAkJCSAqLwog CQkJaW50IGk7CiAJ
CQljb25zdCBib29sIGRvX3N5bmMgPSBiaW9fcndfZmxhZ2dlZChyMV9iaW8t Pm1hc3Rlcl9iaW8s
IEJJT19SV19TWU5DSU8pOworCQkJaWYgKHIxX2Jpby0+bWFzdGVyX2Jpby0+ Ymlfc2l6ZSA9PSAw
KSB7CisJCQkJLyogY2Fubm90IHJldHJ5IGVtcHR5IGJhcnJpZXJzLCBqdXN0 IGZhaWwgKi8KKwkJ
CQliaXRtYXBfZW5kd3JpdGUocjFfYmlvLT5tZGRldi0+Yml0bWFwLAorCQkJ CQlyMV9iaW8tPnNl
Y3RvciwKKwkJCQkJcjFfYmlvLT5zZWN0b3JzLAorCQkJCQkhdGVzdF9iaXQo UjFCSU9fRGVncmFk
ZWQsICZyMV9iaW8tPnN0YXRlKSwKKwkJCQkJdGVzdF9iaXQoUjFCSU9fQmVo aW5kSU8sICZyMV9i
aW8tPnN0YXRlKSk7CisJCQkJbWRfd3JpdGVfZW5kKHIxX2Jpby0+bWRkZXYp OworCisJCQkJcmFp
ZF9lbmRfYmlvX2lvKHIxX2Jpbyk7CisJCQkJY29udGludWU7CisJCQl9CiAJ CQljbGVhcl9iaXQo
UjFCSU9fQmFycmllclJldHJ5LCAmcjFfYmlvLT5zdGF0ZSk7CiAJCQljbGVh cl9iaXQoUjFCSU9f
QmFycmllciwgJnIxX2Jpby0+c3RhdGUpOwogCQkJZm9yIChpPTA7IGkgPCBj b25mLT5yYWlkX2Rp
c2tzOyBpKyspCkBAIC0yMTM5LDcgKzIxNTUsNyBAQCBzdGF0aWMgaW50IHN0 b3AobWRkZXZfdCAq
bWRkZXYpCiAJLyogd2FpdCBmb3IgYmVoaW5kIHdyaXRlcyB0byBjb21wbGV0 ZSAqLwogCXdoaWxl
IChiaXRtYXAgJiYgYXRvbWljX3JlYWQoJmJpdG1hcC0+YmVoaW5kX3dyaXRl cykgPiAwKSB7CiAJ
CWJlaGluZF93YWl0Kys7Ci0JCXByaW50ayhLRVJOX0lORk8gInJhaWQxOiBi ZWhpbmQgd3JpdGVz
IGluIHByb2dyZXNzIG9uIGRldmljZSAlcywgd2FpdGluZyB0byBzdG9wICgl ZClcbiIsIG1kbmFt
ZShtZGRldiksIGJlaGluZF93YWl0KTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAi cmFpZDE6IGJlaGlu
ZCB3cml0ZXMgKCVkKSBpbiBwcm9ncmVzcyBvbiBkZXZpY2UgJXMsIHdhaXRp bmcgdG8gc3RvcCAo
JWQpXG4iLCBhdG9taWNfcmVhZCgmYml0bWFwLT5iZWhpbmRfd3JpdGVzKSwg bWRuYW1lKG1kZGV2
KSwgYmVoaW5kX3dhaXQpOwogCQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX1VO SU5URVJSVVBUSUJM
RSk7CiAJCXNjaGVkdWxlX3RpbWVvdXQoSFopOyAvKiB3YWl0IGEgc2Vjb25k ICovCiAJCS8qIG5l
ZWQgdG8ga2ljayBzb21ldGhpbmcgaGVyZSB0byBtYWtlIHN1cmUgSS9PIGdv ZXM/ICovCg==
--001636c5a9efd1e798049ac02e1e--
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html