From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?utf-8?B?SmFja2llIExpdQ==?=" Subject: [PATCH] raid5-cache: Fix the logic of raid5-cache recovery Date: Fri, 25 Nov 2016 19:39:03 +0800 Message-ID: References: <20161119072057.1302854-1-songliubraving@fb.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161119072057.1302854-1-songliubraving@fb.com> Sender: linux-raid-owner@vger.kernel.org To: =?utf-8?B?U29uZyBMaXU=?= Cc: =?utf-8?B?bGludXgtcmFpZA==?= , =?utf-8?B?5YiY5q2j5YWD?= , =?utf-8?B?c2hsaQ==?= List-Id: linux-raid.ids SGkgU29uZy4NCg0KVGhlcmUgaXMgYSBkb3VidCBmb3IgcjVsX3JlY292ZXJ5X2xvZy4gSSB0 aGluayB3ZSBuZWVkIHdyaXRlIGFuIGVtcHR5IGJsb2NrIGZpcnN0LA0KdGhlbiBjYWxsIHI1 Y19yZWNvdmVyeV9yZXdyaXRlX2RhdGFfb25seV9zdHJpcGVzIGZ1bmN0aW9ucy4gdGhpcyBl bXB0eSANCmJsb2NrIHdpbGwgYmUgbWFyayBhcyB0aGUgbGFzdF9jaGVja3BvaW50LiB3aGVu IHRoZSBDQUNISU5HIGJsb2NrIGlzIHJld3JpdHRlbiwNCnRoZSBzdXBlcmJsb2NrIHNob3Vs ZCBiZSB1cGRhdGUgdGhpcyB0aW1lLiBhdCB0aGUgc2FtZSB0aW1lLCB3ZSBjYW5uJ3QgYmUg DQpyZWxlYXNlZCB0aGUgc3RyaXBlX2hlYWQgYXQgdGhlIGZyb250LCBpdCBhbHNvIGJlIHVz ZWQgaW4gDQpyNWNfcmVjb3ZlcnlfcmV3cml0ZV9kYXRhX29ubHlfc3RyaXBlcy4NCg0KaGVy ZSBpcyB0aGUgcGF0Y2gNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDUtY2FjaGUu YyBiL2RyaXZlcnMvbWQvcmFpZDUtY2FjaGUuYw0KaW5kZXggNWY4MTdiZC4uZmFkMTgwOCAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvbWQvcmFpZDUtY2FjaGUuYw0KKysrIGIvZHJpdmVycy9t ZC9yYWlkNS1jYWNoZS5jDQpAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgY2hhciAqcjVjX2pv dXJuYWxfbW9kZV9zdHJbXSA9IHsid3JpdGUtdGhyb3VnaCIsDQogLyoNCiAgKiByYWlkNSBj YWNoZSBzdGF0ZSBtYWNoaW5lDQogICoNCi0gKiBXaXRoIHJoZSBSQUlEIGNhY2hlLCBlYWNo IHN0cmlwZSB3b3JrcyBpbiB0d28gcGhhc2VzOg0KKyAqIFdpdGggdGhlIFJBSUQgY2FjaGUs IGVhY2ggc3RyaXBlIHdvcmtzIGluIHR3byBwaGFzZXM6DQogICoJLSBjYWNoaW5nIHBoYXNl DQogICoJLSB3cml0aW5nLW91dCBwaGFzZQ0KICAqDQpAQCAtMTY3NCw3ICsxNjc0LDYgQEAg cjVsX3JlY292ZXJ5X3JlcGxheV9vbmVfc3RyaXBlKHN0cnVjdCByNWNvbmYgKmNvbmYsDQoN CiBzdGF0aWMgc3RydWN0IHN0cmlwZV9oZWFkICoNCiByNWNfcmVjb3ZlcnlfYWxsb2Nfc3Ry aXBlKHN0cnVjdCByNWNvbmYgKmNvbmYsDQotCQkJICBzdHJ1Y3QgbGlzdF9oZWFkICpyZWNv dmVyeV9saXN0LA0KIAkJCSAgc2VjdG9yX3Qgc3RyaXBlX3NlY3QsDQogCQkJICBzZWN0b3Jf dCBsb2dfc3RhcnQpDQogew0KQEAgLTE4NTUsOCArMTg1NCw4IEBAIHI1Y19yZWNvdmVyeV9h bmFseXplX21ldGFfYmxvY2soc3RydWN0IHI1bF9sb2cgKmxvZywNCiAJCQkJCQlzdHJpcGVf c2VjdCk7DQoNCiAJCWlmICghc2gpIHsNCi0JCQlzaCA9IHI1Y19yZWNvdmVyeV9hbGxvY19z dHJpcGUoY29uZiwgY2FjaGVkX3N0cmlwZV9saXN0LA0KLQkJCQkJCSAgICAgICBzdHJpcGVf c2VjdCwgY3R4LT5wb3MpOw0KKwkJCXNoID0gcjVjX3JlY292ZXJ5X2FsbG9jX3N0cmlwZShj b25mLCBzdHJpcGVfc2VjdCwNCisJCQkJCQkJY3R4LT5wb3MpOw0KIAkJCS8qDQogCQkJICog Y2Fubm90IGdldCBzdHJpcGUgZnJvbSByYWlkNV9nZXRfYWN0aXZlX3N0cmlwZQ0KIAkJCSAq IHRyeSByZXBsYXkgc29tZSBzdHJpcGVzDQpAQCAtMTg2NSw4ICsxODY0LDcgQEAgcjVjX3Jl Y292ZXJ5X2FuYWx5emVfbWV0YV9ibG9jayhzdHJ1Y3QgcjVsX2xvZyAqbG9nLA0KIAkJCQly NWNfcmVjb3ZlcnlfcmVwbGF5X3N0cmlwZXMoDQogCQkJCQljYWNoZWRfc3RyaXBlX2xpc3Qs IGN0eCk7DQogCQkJCXNoID0gcjVjX3JlY292ZXJ5X2FsbG9jX3N0cmlwZSgNCi0JCQkJCWNv bmYsIGNhY2hlZF9zdHJpcGVfbGlzdCwNCi0JCQkJCXN0cmlwZV9zZWN0LCBjdHgtPnBvcyk7 DQorCQkJCQljb25mLCBzdHJpcGVfc2VjdCwgY3R4LT5wb3MpOw0KIAkJCX0NCiAJCQlpZiAo IXNoKSB7DQogCQkJCXByX2RlYnVnKCJtZC9yYWlkOiVzOiBJbmNyZWFzaW5nIHN0cmlwZSBj YWNoZSBzaXplIHRvICVkIHRvIHJlY292ZXJ5IGRhdGEgb24gam91cm5hbC5cbiIsDQpAQCAt MTg3NSw4ICsxODczLDcgQEAgcjVjX3JlY292ZXJ5X2FuYWx5emVfbWV0YV9ibG9jayhzdHJ1 Y3QgcjVsX2xvZyAqbG9nLA0KIAkJCQlyYWlkNV9zZXRfY2FjaGVfc2l6ZShtZGRldiwNCiAJ CQkJCQkgICAgIGNvbmYtPm1pbl9ucl9zdHJpcGVzICogMik7DQogCQkJCXNoID0gcjVjX3Jl Y292ZXJ5X2FsbG9jX3N0cmlwZSgNCi0JCQkJCWNvbmYsIGNhY2hlZF9zdHJpcGVfbGlzdCwg c3RyaXBlX3NlY3QsDQotCQkJCQljdHgtPnBvcyk7DQorCQkJCQljb25mLCBzdHJpcGVfc2Vj dCwgY3R4LT5wb3MpOw0KIAkJCX0NCiAJCQlpZiAoIXNoKSB7DQogCQkJCXByX2VycigibWQv cmFpZDolczogQ2Fubm90IGdldCBlbm91Z2ggc3RyaXBlcyBkdWUgdG8gbWVtb3J5IHByZXNz dXJlLiBSZWNvdmVyeSBmYWlsZWQuXG4iLA0KQEAgLTE5ODYsOCArMTk4Myw2IEBAIHN0YXRp YyBpbnQgcjVjX3JlY292ZXJ5X2ZsdXNoX2xvZyhzdHJ1Y3QgcjVsX2xvZyAqbG9nLA0KIAls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoc2gsIG5leHQsICZjdHgtPmNhY2hlZF9saXN0LCBs cnUpIHsNCiAJCVdBUk5fT04oIXRlc3RfYml0KFNUUklQRV9SNUNfQ0FDSElORywgJnNoLT5z dGF0ZSkpOw0KIAkJcjVjX3JlY292ZXJ5X2xvYWRfb25lX3N0cmlwZShsb2csIHNoKTsNCi0J CWxpc3RfZGVsX2luaXQoJnNoLT5scnUpOw0KLQkJcmFpZDVfcmVsZWFzZV9zdHJpcGUoc2gp Ow0KIAkJY3R4LT5kYXRhX29ubHlfc3RyaXBlcysrOw0KIAl9DQoNCkBAIC0yMDc4LDcgKzIw NzMsNiBAQCByNWNfcmVjb3ZlcnlfcmV3cml0ZV9kYXRhX29ubHlfc3RyaXBlcyhzdHJ1Y3Qg cjVsX2xvZyAqbG9nLA0KIAkJcmV0dXJuIC1FTk9NRU07DQogCX0NCg0KLQljdHgtPnNlcSAr PSAxMDsNCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShzaCwgJmN0eC0+Y2FjaGVkX2xpc3QsIGxy dSkgew0KIAkJc3RydWN0IHI1bF9tZXRhX2Jsb2NrICptYjsNCiAJCWludCBpOw0KQEAgLTIw OTAsNyArMjA4NCw3IEBAIHI1Y19yZWNvdmVyeV9yZXdyaXRlX2RhdGFfb25seV9zdHJpcGVz KHN0cnVjdCByNWxfbG9nICpsb2csDQogCQkJCQkJICAgICBjdHgtPnBvcywgY3R4LT5zZXEp Ow0KIAkJbWIgPSBwYWdlX2FkZHJlc3MocGFnZSk7DQogCQlvZmZzZXQgPSBsZTMyX3RvX2Nw dShtYi0+bWV0YV9zaXplKTsNCi0JCXdyaXRlX3BvcyA9IGN0eC0+cG9zICsgQkxPQ0tfU0VD VE9SUzsNCisJCXdyaXRlX3BvcyA9IHI1bF9yaW5nX2FkZChsb2csIGN0eC0+cG9zLCBCTE9D S19TRUNUT1JTKTsNCg0KIAkJZm9yIChpID0gc2gtPmRpc2tzOyBpLS07ICkgew0KIAkJCXN0 cnVjdCByNWRldiAqZGV2ID0gJnNoLT5kZXZbaV07DQpAQCAtMjEyNSw2ICsyMTE5LDkgQEAg cjVjX3JlY292ZXJ5X3Jld3JpdGVfZGF0YV9vbmx5X3N0cmlwZXMoc3RydWN0IHI1bF9sb2cg KmxvZywNCiAJCXNoLT5sb2dfc3RhcnQgPSBjdHgtPnBvczsNCiAJCWN0eC0+cG9zID0gd3Jp dGVfcG9zOw0KIAkJY3R4LT5zZXEgKz0gMTsNCisNCisJCWxpc3RfZGVsX2luaXQoJnNoLT5s cnUpOw0KKwkJcmFpZDVfcmVsZWFzZV9zdHJpcGUoc2gpOw0KIAl9DQogCV9fZnJlZV9wYWdl KHBhZ2UpOw0KIAlyZXR1cm4gMDsNCkBAIC0yMTM1LDYgKzIxMzIsNyBAQCBzdGF0aWMgaW50 IHI1bF9yZWNvdmVyeV9sb2coc3RydWN0IHI1bF9sb2cgKmxvZykNCiAJc3RydWN0IG1kZGV2 ICptZGRldiA9IGxvZy0+cmRldi0+bWRkZXY7DQogCXN0cnVjdCByNWxfcmVjb3ZlcnlfY3R4 IGN0eDsNCiAJaW50IHJldDsNCisJc2VjdG9yX3QgcG9zOw0KDQogCWN0eC5wb3MgPSBsb2ct Pmxhc3RfY2hlY2twb2ludDsNCiAJY3R4LnNlcSA9IGxvZy0+bGFzdF9jcF9zZXE7DQpAQCAt MjE1Miw2ICsyMTUwLDEwIEBAIHN0YXRpYyBpbnQgcjVsX3JlY292ZXJ5X2xvZyhzdHJ1Y3Qg cjVsX2xvZyAqbG9nKQ0KIAlpZiAocmV0KQ0KIAkJcmV0dXJuIHJldDsNCg0KKwlwb3MgPSBj dHgucG9zOw0KKwlyNWxfbG9nX3dyaXRlX2VtcHR5X21ldGFfYmxvY2sobG9nLCBjdHgucG9z LCAoY3R4LnNlcSArPSAxMCkpOw0KKwljdHgucG9zID0gcjVsX3JpbmdfYWRkKGxvZywgY3R4 LnBvcywgQkxPQ0tfU0VDVE9SUyk7DQorDQogCWlmICgoY3R4LmRhdGFfb25seV9zdHJpcGVz ID09IDApICYmIChjdHguZGF0YV9wYXJpdHlfc3RyaXBlcyA9PSAwKSkNCiAJCXByX2RlYnVn KCJtZC9yYWlkOiVzOiBzdGFydGluZyBmcm9tIGNsZWFuIHNodXRkb3duXG4iLA0KIAkJCSBt ZG5hbWUobWRkZXYpKTsNCkBAIC0yMTcwLDkgKzIxNzIsOSBAQCBzdGF0aWMgaW50IHI1bF9y ZWNvdmVyeV9sb2coc3RydWN0IHI1bF9sb2cgKmxvZykNCg0KIAlsb2ctPmxvZ19zdGFydCA9 IGN0eC5wb3M7DQogCWxvZy0+bmV4dF9jaGVja3BvaW50ID0gY3R4LnBvczsNCisJbG9nLT5s YXN0X2NoZWNrcG9pbnQgPSBwb3M7DQogCWxvZy0+c2VxID0gY3R4LnNlcTsNCi0JcjVsX2xv Z193cml0ZV9lbXB0eV9tZXRhX2Jsb2NrKGxvZywgY3R4LnBvcywgY3R4LnNlcSk7DQotCXI1 bF93cml0ZV9zdXBlcihsb2csIGN0eC5wb3MpOw0KKwlyNWxfd3JpdGVfc3VwZXIobG9nLCBw b3MpOw0KIAlyZXR1cm4gMDsNCiB9DQoNCi0tDQoyLjcuNA0KDQpUaGFua3MuDQpKYWNraWU=