From: "HUANG Weller (CM/ESW12-CN)" Subject: FW: ext4 out of order when use cfq scheduler Date: Wed, 22 Jun 2016 11:55:12 +0000 Message-ID: References: <20160106100621.GA24046@quack.suse.cz> <3ab48fa47e434455b101251730e69bd2@SGPMBX1004.APAC.bosch.com> <20160107102420.GB8380@quack.suse.cz> <20160107114736.GC8380@quack.suse.cz> <20160313042723.GC29218@thunk.org> <20160314073928.GD5213@quack.suse.cz> <20160314143635.GM29218@thunk.org> <20160315104634.GG17942@quack.suse.cz> <20160315144633.GA12352@quack.suse.cz> <20160315200951.GA1445@quack.suse.cz> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_003_f0a9a62a43c4419687c69fff15a7c043SGPMBX1004APACboschcom_" Cc: "linux-ext4@vger.kernel.org" , Theodore Ts'o To: "jack@suse.cz" Return-path: Received: from smtp6-v.fe.bosch.de ([139.15.237.11]:40507 "EHLO smtp6-v.fe.bosch.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752048AbcFVLzV (ORCPT ); Wed, 22 Jun 2016 07:55:21 -0400 In-Reply-To: <20160315200951.GA1445@quack.suse.cz> Content-Language: en-US Sender: linux-ext4-owner@vger.kernel.org List-ID: --_003_f0a9a62a43c4419687c69fff15a7c043SGPMBX1004APACboschcom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Kara, I saw the patch " fix data exposure after a crash " in the kernel 4.6.2 rel= ease. I remember you provided 2 more patches for performance optimization. Could = you tell me whether they are necessary ? Thanks.=20 Best regards Weller HUANG -----Original Message----- From: Jan Kara [mailto:jack@suse.cz]=20 Sent: Wednesday, March 16, 2016 4:10 AM To: Theodore Ts'o Cc: Jan Kara ; HUANG Weller (CM/ESW12-CN) ; linux-ext4@vger.kernel.org; Li, Michael Subject: Re: ext4 out of order when use cfq scheduler On Tue 15-03-16 15:46:33, Jan Kara wrote: > On Tue 15-03-16 11:46:34, Jan Kara wrote: > > On Mon 14-03-16 10:36:35, Ted Tso wrote: > > > On Mon, Mar 14, 2016 at 08:39:28AM +0100, Jan Kara wrote: > > > > No, that won't be enough. blkdev_issue_flush() is not guaranteed=20 > > > > to do anything to IOs which have not reported completion before > > > > blkdev_issue_flush() was called. Specifically, CFQ will queue=20 > > > > submitted bio in its internal RB tree, following flush request=20 > > > > completely bypasses this tree and goes directly to the disk=20 > > > > where it flushes caches. And only later CFQ decides to schedule=20 > > > > async writeback from the flusher thread which is queued in the RB t= ree... > > >=20 > > > Oh, right. I am forgetting about the flushing mahchinery rewrite. > > > Thanks for pointing that out. > > >=20 > > > But what we *could* do is to swap those two calls and then in the=20 > > > case where delalloc is enabled, could maintain a list of inodes=20 > > > where we only need to call filemap_fdatawait(), and not initiate=20 > > > writeback for any dirty pages which had been caused by non-allocating= writes. > >=20 > > We actually don't need to swap those two calls - page is already=20 > > marked as under writeback in > >=20 > > mpage_map_and_submit_buffers() -> mpage_submit_page ->=20 > > ext4_bio_write_page > >=20 > > which gets called while we still hold the transaction handle. I=20 > > agree calling filemap_fdatawait() from JBD2 during commit should be=20 > > enough to fix issues with delalloc writeback. I'm just somewhat=20 > > afraid that it will be more fragile: If we add inode to=20 > > transaction's list in ext4_map_blocks(), we are pretty sure there's=20 > > no way to allocate block to an inode without introducing data=20 > > exposure issues (which are then very hard to spot). If we depend on=20 > > callers of ext4_map_blocks() to properly add inode to appropriate=20 > > transaction list, we have much more places to check. I'll think whether= we could make this more robust. >=20 > OK, I have something - Huang, can you check whether the attached=20 > patches also fix your data exposure issues please? The first patch is=20 > the original fix, patch two is a cleanup, patches 3 and 4 implement=20 > the speedup suggested by Ted. Patches are only lightly tested so far. =20 > I'll run more comprehensive tests later and in particular I want to=20 > check whether the additional complexity actually brings us some=20 > advantage at least for workloads which redirty pages in addition to=20 > writing some new ones using delayed allocation. OK, there was a bug in patch 3. Attached is a new version of patches 3 and = 4. Honza --_003_f0a9a62a43c4419687c69fff15a7c043SGPMBX1004APACboschcom_ Content-Type: text/x-patch; name="0003-jbd2-Add-support-for-avoiding-data-writes-during-tra.patch" Content-Description: 0003-jbd2-Add-support-for-avoiding-data-writes-during-tra.patch Content-Disposition: attachment; filename="0003-jbd2-Add-support-for-avoiding-data-writes-during-tra.patch"; size=7651; creation-date="Tue, 15 Mar 2016 20:09:32 GMT"; modification-date="Tue, 15 Mar 2016 20:09:32 GMT" Content-ID: <24688CC0FF42C64B926E559971EFFE99@bosch.com> Content-Transfer-Encoding: base64 RnJvbSA1ZTNiZjZjYmU3NTA5NzllMDAzYjEzMmFjZWRhNjU1ZWJkNWI0ZjJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogSmFuIEthcmEgPGphY2tAc3VzZS5jej4NCkRhdGU6IFR1ZSwg MTUgTWFyIDIwMTYgMTU6MDc6MjIgKzAxMDANClN1YmplY3Q6IFtQQVRDSCAzLzRdIGpiZDI6IEFk ZCBzdXBwb3J0IGZvciBhdm9pZGluZyBkYXRhIHdyaXRlcyBkdXJpbmcNCiB0cmFuc2FjdGlvbiBj b21taXRzDQoNCkN1cnJlbnRseSB3aGVuIGZpbGVzeXN0ZW0gbmVlZHMgdG8gbWFrZSBzdXJlIGRh dGEgaXMgb24gcGVybWFuZW50DQpzdG9yYWdlIGJlZm9yZSBjb21taXR0aW5nIGEgdHJhbnNhY3Rp b24gaXQgYWRkcyBpbm9kZSB0byB0cmFuc2FjdGlvbidzDQppbm9kZSBsaXN0LiBEdXJpbmcgdHJh bnNhY3Rpb24gY29tbWl0LCBqYmQyIHdyaXRlcyBiYWNrIGFsbCBkaXJ0eQ0KYnVmZmVycyB0aGF0 IGhhdmUgYWxsb2NhdGVkIHVuZGVybHlpbmcgYmxvY2tzIGFuZCB3YWl0cyBmb3IgdGhlIElPIHRv DQpmaW5pc2guIEhvd2V2ZXIgd2hlbiBkb2luZyB3cml0ZWJhY2sgZm9yIGRlbGF5ZWQgYWxsb2Nh dGVkIGRhdGEsIHdlDQphbGxvY2F0ZSBibG9ja3MgYW5kIGltbWVkaWF0ZWx5IHN1Ym1pdCB0aGUg ZGF0YS4gVGh1cyBhc2tpbmcgamJkMiB0bw0Kd3JpdGUgZGlydHkgcGFnZXMganVzdCB1bm5lY2Vz c2FyaWx5IGFkZHMgbW9yZSB3b3JrIHRvIGpiZDIgcG9zc2libHkNCndyaXRpbmcgYmFjayBvdGhl ciByZWRpcnRpZWQgYmxvY2tzLg0KDQpBZGQgc3VwcG9ydCB0byBqYmQyIHRvIGFsbG93IGZpbGVz eXN0ZW0gdG8gYXNrIGpiZDIgdG8gb25seSB3YWl0IGZvcg0Kb3V0c3RhbmRpbmcgZGF0YSB3cml0 ZXMgYmVmb3JlIGNvbW1pdHRpbmcgYSB0cmFuc2FjdGlvbiBhbmQgdGh1cyBhdm9pZA0KdW5uZWNl c3Nhcnkgd3JpdGVzLg0KDQpTaWduZWQtb2ZmLWJ5OiBKYW4gS2FyYSA8amFja0BzdXNlLmN6Pg0K LS0tDQogZnMvZXh0NC9leHQ0X2piZDIuaCAgIHwgIDMgKystDQogZnMvamJkMi9jb21taXQuYyAg ICAgIHwgIDQgKysrKw0KIGZzL2piZDIvam91cm5hbC5jICAgICB8ICAzICsrLQ0KIGZzL2piZDIv dHJhbnNhY3Rpb24uYyB8IDIyICsrKysrKysrKysrKysrKysrKy0tLS0NCiBmcy9vY2ZzMi9qb3Vy bmFsLmggICAgfCAgMiArLQ0KIGluY2x1ZGUvbGludXgvamJkMi5oICB8IDEzICsrKysrKysrKysr LS0NCiA2IGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pDQoN CmRpZmYgLS1naXQgYS9mcy9leHQ0L2V4dDRfamJkMi5oIGIvZnMvZXh0NC9leHQ0X2piZDIuaA0K aW5kZXggNWY1ODQ2MjExMDk1Li5mMWM5NDBiMzhiMzAgMTAwNjQ0DQotLS0gYS9mcy9leHQ0L2V4 dDRfamJkMi5oDQorKysgYi9mcy9leHQ0L2V4dDRfamJkMi5oDQpAQCAtMzYyLDcgKzM2Miw4IEBA IHN0YXRpYyBpbmxpbmUgaW50IGV4dDRfam91cm5hbF9mb3JjZV9jb21taXQoam91cm5hbF90ICpq b3VybmFsKQ0KIHN0YXRpYyBpbmxpbmUgaW50IGV4dDRfamJkMl9maWxlX2lub2RlKGhhbmRsZV90 ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0KIAlpZiAoZXh0NF9oYW5kbGVfdmFs aWQoaGFuZGxlKSkNCi0JCXJldHVybiBqYmQyX2pvdXJuYWxfZmlsZV9pbm9kZShoYW5kbGUsIEVY VDRfSShpbm9kZSktPmppbm9kZSk7DQorCQlyZXR1cm4gamJkMl9qb3VybmFsX2lub2RlX2FkZF93 cml0ZShoYW5kbGUsDQorCQkJCQkJICAgIEVYVDRfSShpbm9kZSktPmppbm9kZSk7DQogCXJldHVy biAwOw0KIH0NCiANCmRpZmYgLS1naXQgYS9mcy9qYmQyL2NvbW1pdC5jIGIvZnMvamJkMi9jb21t aXQuYw0KaW5kZXggMzYzNDVmZWZhM2ZmLi43ZDFkYmU5M2QyOTAgMTAwNjQ0DQotLS0gYS9mcy9q YmQyL2NvbW1pdC5jDQorKysgYi9mcy9qYmQyL2NvbW1pdC5jDQpAQCAtMjIxLDYgKzIyMSw4IEBA IHN0YXRpYyBpbnQgam91cm5hbF9zdWJtaXRfZGF0YV9idWZmZXJzKGpvdXJuYWxfdCAqam91cm5h bCwNCiANCiAJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7DQogCWxpc3RfZm9yX2Vh Y2hfZW50cnkoamlub2RlLCAmY29tbWl0X3RyYW5zYWN0aW9uLT50X2lub2RlX2xpc3QsIGlfbGlz dCkgew0KKwkJaWYgKCEoamlub2RlLT5pX2ZsYWdzICYgSklfV1JJVEVfREFUQSkpDQorCQkJY29u dGludWU7DQogCQltYXBwaW5nID0gamlub2RlLT5pX3Zmc19pbm9kZS0+aV9tYXBwaW5nOw0KIAkJ c2V0X2JpdChfX0pJX0NPTU1JVF9SVU5OSU5HLCAmamlub2RlLT5pX2ZsYWdzKTsNCiAJCXNwaW5f dW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7DQpAQCAtMjU4LDYgKzI2MCw4IEBAIHN0YXRp YyBpbnQgam91cm5hbF9maW5pc2hfaW5vZGVfZGF0YV9idWZmZXJzKGpvdXJuYWxfdCAqam91cm5h bCwNCiAJLyogRm9yIGxvY2tpbmcsIHNlZSB0aGUgY29tbWVudCBpbiBqb3VybmFsX3N1Ym1pdF9k YXRhX2J1ZmZlcnMoKSAqLw0KIAlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsNCiAJ bGlzdF9mb3JfZWFjaF9lbnRyeShqaW5vZGUsICZjb21taXRfdHJhbnNhY3Rpb24tPnRfaW5vZGVf bGlzdCwgaV9saXN0KSB7DQorCQlpZiAoIShqaW5vZGUtPmlfZmxhZ3MgJiBKSV9XQUlUX0RBVEEp KQ0KKwkJCWNvbnRpbnVlOw0KIAkJc2V0X2JpdChfX0pJX0NPTU1JVF9SVU5OSU5HLCAmamlub2Rl LT5pX2ZsYWdzKTsNCiAJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7DQogCQll cnIgPSBmaWxlbWFwX2ZkYXRhd2FpdChqaW5vZGUtPmlfdmZzX2lub2RlLT5pX21hcHBpbmcpOw0K ZGlmZiAtLWdpdCBhL2ZzL2piZDIvam91cm5hbC5jIGIvZnMvamJkMi9qb3VybmFsLmMNCmluZGV4 IDgxZTYyMjY4MWM4Mi4uODczNGI3N2FlNDdhIDEwMDY0NA0KLS0tIGEvZnMvamJkMi9qb3VybmFs LmMNCisrKyBiL2ZzL2piZDIvam91cm5hbC5jDQpAQCAtOTQsNyArOTQsOCBAQCBFWFBPUlRfU1lN Qk9MKGpiZDJfam91cm5hbF9ibG9ja3NfcGVyX3BhZ2UpOw0KIEVYUE9SVF9TWU1CT0woamJkMl9q b3VybmFsX2ludmFsaWRhdGVwYWdlKTsNCiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF90cnlf dG9fZnJlZV9idWZmZXJzKTsNCiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9mb3JjZV9jb21t aXQpOw0KLUVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2ZpbGVfaW5vZGUpOw0KK0VYUE9SVF9T WU1CT0woamJkMl9qb3VybmFsX2lub2RlX2FkZF93cml0ZSk7DQorRVhQT1JUX1NZTUJPTChqYmQy X2pvdXJuYWxfaW5vZGVfYWRkX3dhaXQpOw0KIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2lu aXRfamJkX2lub2RlKTsNCiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9yZWxlYXNlX2piZF9p bm9kZSk7DQogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfYmVnaW5fb3JkZXJlZF90cnVuY2F0 ZSk7DQpkaWZmIC0tZ2l0IGEvZnMvamJkMi90cmFuc2FjdGlvbi5jIGIvZnMvamJkMi90cmFuc2Fj dGlvbi5jDQppbmRleCBjYTE4MWU4MWM3NjUuLmQxYjVjMGY0NjViNSAxMDA2NDQNCi0tLSBhL2Zz L2piZDIvdHJhbnNhY3Rpb24uYw0KKysrIGIvZnMvamJkMi90cmFuc2FjdGlvbi5jDQpAQCAtMjQ3 Niw3ICsyNDc2LDggQEAgdm9pZCBqYmQyX2pvdXJuYWxfcmVmaWxlX2J1ZmZlcihqb3VybmFsX3Qg KmpvdXJuYWwsIHN0cnVjdCBqb3VybmFsX2hlYWQgKmpoKQ0KIC8qDQogICogRmlsZSBpbm9kZSBp biB0aGUgaW5vZGUgbGlzdCBvZiB0aGUgaGFuZGxlJ3MgdHJhbnNhY3Rpb24NCiAgKi8NCi1pbnQg amJkMl9qb3VybmFsX2ZpbGVfaW5vZGUoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGpiZDJfaW5v ZGUgKmppbm9kZSkNCitzdGF0aWMgaW50IGpiZDJfam91cm5hbF9maWxlX2lub2RlKGhhbmRsZV90 ICpoYW5kbGUsIHN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGUsDQorCQkJCSAgIHVuc2lnbmVkIGxv bmcgZmxhZ3MpDQogew0KIAl0cmFuc2FjdGlvbl90ICp0cmFuc2FjdGlvbiA9IGhhbmRsZS0+aF90 cmFuc2FjdGlvbjsNCiAJam91cm5hbF90ICpqb3VybmFsOw0KQEAgLTI1MDEsMTIgKzI1MDIsMTQg QEAgaW50IGpiZDJfam91cm5hbF9maWxlX2lub2RlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBq YmQyX2lub2RlICpqaW5vZGUpDQogCSAqIGFuZCBpZiBqaW5vZGUtPmlfbmV4dF90cmFuc2FjdGlv biA9PSB0cmFuc2FjdGlvbiwgY29tbWl0IGNvZGUNCiAJICogd2lsbCBvbmx5IGZpbGUgdGhlIGlu b2RlIHdoZXJlIHdlIHdhbnQgaXQuDQogCSAqLw0KLQlpZiAoamlub2RlLT5pX3RyYW5zYWN0aW9u ID09IHRyYW5zYWN0aW9uIHx8DQotCSAgICBqaW5vZGUtPmlfbmV4dF90cmFuc2FjdGlvbiA9PSB0 cmFuc2FjdGlvbikNCisJaWYgKChqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPT0gdHJhbnNhY3Rpb24g fHwNCisJICAgIGppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID09IHRyYW5zYWN0aW9uKSAmJg0K KwkgICAgKGppbm9kZS0+aV9mbGFncyAmIGZsYWdzKSA9PSBmbGFncykNCiAJCXJldHVybiAwOw0K IA0KIAlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsNCi0NCisJamlub2RlLT5pX2Zs YWdzIHw9IGZsYWdzOw0KKwkvKiBJcyBpbm9kZSBhbHJlYWR5IGF0dGFjaGVkIHdoZXJlIHdlIG5l ZWQgaXQ/ICovDQogCWlmIChqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPT0gdHJhbnNhY3Rpb24gfHwN CiAJICAgIGppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID09IHRyYW5zYWN0aW9uKQ0KIAkJZ290 byBkb25lOw0KQEAgLTI1MzcsNiArMjU0MCwxNyBAQCBkb25lOg0KIAlyZXR1cm4gMDsNCiB9DQog DQoraW50IGpiZDJfam91cm5hbF9pbm9kZV9hZGRfd3JpdGUoaGFuZGxlX3QgKmhhbmRsZSwgc3Ry dWN0IGpiZDJfaW5vZGUgKmppbm9kZSkNCit7DQorCXJldHVybiBqYmQyX2pvdXJuYWxfZmlsZV9p bm9kZShoYW5kbGUsIGppbm9kZSwNCisJCQkJICAgICAgIEpJX1dSSVRFX0RBVEEgfCBKSV9XQUlU X0RBVEEpOw0KK30NCisNCitpbnQgamJkMl9qb3VybmFsX2lub2RlX2FkZF93YWl0KGhhbmRsZV90 ICpoYW5kbGUsIHN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGUpDQorew0KKwlyZXR1cm4gamJkMl9q b3VybmFsX2ZpbGVfaW5vZGUoaGFuZGxlLCBqaW5vZGUsIEpJX1dBSVRfREFUQSk7DQorfQ0KKw0K IC8qDQogICogRmlsZSB0cnVuY2F0ZSBhbmQgdHJhbnNhY3Rpb24gY29tbWl0IGludGVyYWN0IHdp dGggZWFjaCBvdGhlciBpbiBhDQogICogbm9uLXRyaXZpYWwgd2F5LiAgSWYgYSB0cmFuc2FjdGlv biB3cml0aW5nIGRhdGEgYmxvY2sgQSBpcw0KZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2pvdXJuYWwu aCBiL2ZzL29jZnMyL2pvdXJuYWwuaA0KaW5kZXggZjRjZDNjM2U5ZmI3Li40OTdhNDE3MWVmNjEg MTAwNjQ0DQotLS0gYS9mcy9vY2ZzMi9qb3VybmFsLmgNCisrKyBiL2ZzL29jZnMyL2pvdXJuYWwu aA0KQEAgLTYxOSw3ICs2MTksNyBAQCBzdGF0aWMgaW5saW5lIGludCBvY2ZzMl9jYWxjX3RyZWVf dHJ1bmNfY3JlZGl0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLA0KIA0KIHN0YXRpYyBpbmxpbmUg aW50IG9jZnMyX2piZDJfZmlsZV9pbm9kZShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUg Kmlub2RlKQ0KIHsNCi0JcmV0dXJuIGpiZDJfam91cm5hbF9maWxlX2lub2RlKGhhbmRsZSwgJk9D RlMyX0koaW5vZGUpLT5pcF9qaW5vZGUpOw0KKwlyZXR1cm4gamJkMl9qb3VybmFsX2lub2RlX2Fk ZF93cml0ZShoYW5kbGUsICZPQ0ZTMl9JKGlub2RlKS0+aXBfamlub2RlKTsNCiB9DQogDQogc3Rh dGljIGlubGluZSBpbnQgb2NmczJfYmVnaW5fb3JkZXJlZF90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUg Kmlub2RlLA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvamJkMi5oIGIvaW5jbHVkZS9saW51 eC9qYmQyLmgNCmluZGV4IDY1NDA3ZjZjOTEyMC4uMDVhOGQ2NzYyYjJkIDEwMDY0NA0KLS0tIGEv aW5jbHVkZS9saW51eC9qYmQyLmgNCisrKyBiL2luY2x1ZGUvbGludXgvamJkMi5oDQpAQCAtNDA4 LDExICs0MDgsMTkgQEAgc3RhdGljIGlubGluZSB2b2lkIGpiZF91bmxvY2tfYmhfam91cm5hbF9o ZWFkKHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpDQogDQogLyogRmxhZ3MgaW4gamJkX2lub2RlLT5p X2ZsYWdzICovDQogI2RlZmluZSBfX0pJX0NPTU1JVF9SVU5OSU5HIDANCi0vKiBDb21taXQgb2Yg dGhlIGlub2RlIGRhdGEgaW4gcHJvZ3Jlc3MuIFdlIHVzZSB0aGlzIGZsYWcgdG8gcHJvdGVjdCB1 cyBmcm9tDQorI2RlZmluZSBfX0pJX1dSSVRFX0RBVEEgMQ0KKyNkZWZpbmUgX19KSV9XQUlUX0RB VEEgMg0KKw0KKy8qDQorICogQ29tbWl0IG9mIHRoZSBpbm9kZSBkYXRhIGluIHByb2dyZXNzLiBX ZSB1c2UgdGhpcyBmbGFnIHRvIHByb3RlY3QgdXMgZnJvbQ0KICAqIGNvbmN1cnJlbnQgZGVsZXRp b24gb2YgaW5vZGUuIFdlIGNhbm5vdCB1c2UgcmVmZXJlbmNlIHRvIGlub2RlIGZvciB0aGlzDQog ICogc2luY2Ugd2UgY2Fubm90IGFmZm9yZCBkb2luZyBsYXN0IGlwdXQoKSBvbiBiZWhhbGYgb2Yg a2pvdXJuYWxkDQogICovDQogI2RlZmluZSBKSV9DT01NSVRfUlVOTklORyAoMSA8PCBfX0pJX0NP TU1JVF9SVU5OSU5HKQ0KKy8qIFdyaXRlIGFsbG9jYXRlZCBkaXJ0eSBidWZmZXJzIGluIHRoaXMg aW5vZGUgYmVmb3JlIGNvbW1pdCAqLw0KKyNkZWZpbmUgSklfV1JJVEVfREFUQSAoMSA8PCBfX0pJ X1dSSVRFX0RBVEEpDQorLyogV2FpdCBmb3Igb3V0c3RhbmRpbmcgZGF0YSB3cml0ZXMgZm9yIHRo aXMgaW5vZGUgYmVmb3JlIGNvbW1pdCAqLw0KKyNkZWZpbmUgSklfV0FJVF9EQVRBICgxIDw8IF9f SklfV0FJVF9EQVRBKQ0KIA0KIC8qKg0KICAqIHN0cnVjdCBqYmRfaW5vZGUgaXMgdGhlIHN0cnVj dHVyZSBsaW5raW5nIGlub2RlcyBpbiBvcmRlcmVkIG1vZGUNCkBAIC0xMjc0LDcgKzEyODIsOCBA QCBleHRlcm4gaW50CSAgIGpiZDJfam91cm5hbF9jbGVhcl9lcnIgIChqb3VybmFsX3QgKik7DQog ZXh0ZXJuIGludAkgICBqYmQyX2pvdXJuYWxfYm1hcChqb3VybmFsX3QgKiwgdW5zaWduZWQgbG9u ZywgdW5zaWduZWQgbG9uZyBsb25nICopOw0KIGV4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX2Zv cmNlX2NvbW1pdChqb3VybmFsX3QgKik7DQogZXh0ZXJuIGludAkgICBqYmQyX2pvdXJuYWxfZm9y Y2VfY29tbWl0X25lc3RlZChqb3VybmFsX3QgKik7DQotZXh0ZXJuIGludAkgICBqYmQyX2pvdXJu YWxfZmlsZV9pbm9kZShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgamJkMl9pbm9kZSAqaW5vZGUp Ow0KK2V4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX2lub2RlX2FkZF93cml0ZShoYW5kbGVfdCAq aGFuZGxlLCBzdHJ1Y3QgamJkMl9pbm9kZSAqaW5vZGUpOw0KK2V4dGVybiBpbnQJICAgamJkMl9q b3VybmFsX2lub2RlX2FkZF93YWl0KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBqYmQyX2lub2Rl ICppbm9kZSk7DQogZXh0ZXJuIGludAkgICBqYmQyX2pvdXJuYWxfYmVnaW5fb3JkZXJlZF90cnVu Y2F0ZShqb3VybmFsX3QgKmpvdXJuYWwsDQogCQkJCXN0cnVjdCBqYmQyX2lub2RlICppbm9kZSwg bG9mZl90IG5ld19zaXplKTsNCiBleHRlcm4gdm9pZAkgICBqYmQyX2pvdXJuYWxfaW5pdF9qYmRf aW5vZGUoc3RydWN0IGpiZDJfaW5vZGUgKmppbm9kZSwgc3RydWN0IGlub2RlICppbm9kZSk7DQot LSANCjIuNi4yDQoNCg== --_003_f0a9a62a43c4419687c69fff15a7c043SGPMBX1004APACboschcom_ Content-Type: text/x-patch; name="0004-ext4-Do-not-ask-jbd2-to-write-data-for-delalloc-buff.patch" Content-Description: 0004-ext4-Do-not-ask-jbd2-to-write-data-for-delalloc-buff.patch Content-Disposition: attachment; filename="0004-ext4-Do-not-ask-jbd2-to-write-data-for-delalloc-buff.patch"; size=4389; creation-date="Tue, 15 Mar 2016 20:09:32 GMT"; modification-date="Tue, 15 Mar 2016 20:09:32 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSBlNzllZDAyOTY4MDQwZDg2ODRlY2ZiYTdhOWRjYTBhOGFmMWM1ODMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogSmFuIEthcmEgPGphY2tAc3VzZS5jej4NCkRhdGU6IFR1ZSwg MTUgTWFyIDIwMTYgMTU6MjU6MDIgKzAxMDANClN1YmplY3Q6IFtQQVRDSCA0LzRdIGV4dDQ6IERv IG5vdCBhc2sgamJkMiB0byB3cml0ZSBkYXRhIGZvciBkZWxhbGxvYyBidWZmZXJzDQoNCkN1cnJl bnRseSB3ZSBhc2sgamJkMiB0byB3cml0ZSBhbGwgZGlydHkgYWxsb2NhdGVkIGJ1ZmZlcnMgYmVm b3JlDQpjb21taXR0aW5nIGEgdHJhbnNhY3Rpb24gd2hlbiBkb2luZyB3cml0ZWJhY2sgb2YgZGVs YXkgYWxsb2NhdGVkIGJsb2Nrcy4NCkhvd2V2ZXIgdGhpcyBpcyB1bm5lY2Vzc2FyeSBzaW5jZSB3 ZSBtb3ZlIGFsbCBwYWdlcyB0byB3cml0ZWJhY2sgc3RhdGUNCmJlZm9yZSBkcm9wcGluZyBhIHRy YW5zYWN0aW9uIGhhbmRsZSBhbmQgdGhlbiBzdWJtaXQgYWxsIHRoZSBuZWNlc3NhcnkNCklPLiBX ZSBzdGlsbCBuZWVkIHRoZSB0cmFuc2FjdGlvbiBjb21taXQgdG8gd2FpdCBmb3IgYWxsIHRoZSBv dXRzdGFuZGluZw0Kd3JpdGViYWNrIGJlZm9yZSBmbHVzaGluZyBkaXNrIGNhY2hlcyBkdXJpbmcg dHJhbnNhY3Rpb24gY29tbWl0IHRvIGF2b2lkDQpkYXRhIGV4cG9zdXJlIGlzc3VlcyB0aG91Z2gu IFVzZSB0aGUgbmV3IGpiZDIgY2FwYWJpbGl0eSBhbmQgYXNrIGl0IHRvDQpvbmx5IHdhaXQgZm9y IG91dHN0YW5kaW5nIHdyaXRlYmFjayBkdXJpbmcgdHJhbnNhY3Rpb24gY29tbWl0IHdoZW4NCndy aXRpbmcgYmFjayBkYXRhIGluIGV4dDRfd3JpdGVwYWdlcygpLg0KDQpTaWduZWQtb2ZmLWJ5OiBK YW4gS2FyYSA8amFja0BzdXNlLmN6Pg0KLS0tDQogZnMvZXh0NC9leHQ0LmggICAgICAgIHwgIDMg KysrDQogZnMvZXh0NC9leHQ0X2piZDIuaCAgIHwgMTIgKysrKysrKysrKystDQogZnMvZXh0NC9p bm9kZS5jICAgICAgIHwgMTAgKysrKysrKy0tLQ0KIGZzL2V4dDQvbW92ZV9leHRlbnQuYyB8ICAy ICstDQogNCBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0K DQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHQ0LmggYi9mcy9leHQ0L2V4dDQuaA0KaW5kZXggYmM0 OTEwYmNlNGZmLi5hMDk1ZTgzM2E2YzAgMTAwNjQ0DQotLS0gYS9mcy9leHQ0L2V4dDQuaA0KKysr IGIvZnMvZXh0NC9leHQ0LmgNCkBAIC01NjEsNiArNTYxLDkgQEAgZW51bSB7DQogI2RlZmluZSBF WFQ0X0dFVF9CTE9DS1NfWkVSTwkJCTB4MDIwMA0KICNkZWZpbmUgRVhUNF9HRVRfQkxPQ0tTX0NS RUFURV9aRVJPCQkoRVhUNF9HRVRfQkxPQ0tTX0NSRUFURSB8XA0KIAkJCQkJRVhUNF9HRVRfQkxP Q0tTX1pFUk8pDQorCS8qIENhbGxlciB3aWxsIHN1Ym1pdCBkYXRhIGJlZm9yZSBkcm9wcGluZyB0 cmFuc2FjdGlvbiBoYW5kbGUuIFRoaXMNCisJICogYWxsb3dzIGpiZDIgdG8gYXZvaWQgc3VibWl0 dGluZyBkYXRhIGJlZm9yZSBjb21taXQuICovDQorI2RlZmluZSBFWFQ0X0dFVF9CTE9DS1NfSU9f U1VCTUlUCQkweDA0MDANCiANCiAvKg0KICAqIFRoZSBiaXQgcG9zaXRpb24gb2YgdGhlc2UgZmxh Z3MgbXVzdCBub3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUNCmRpZmYgLS1naXQgYS9mcy9leHQ0 L2V4dDRfamJkMi5oIGIvZnMvZXh0NC9leHQ0X2piZDIuaA0KaW5kZXggZjFjOTQwYjM4YjMwLi4w OWMxZWYzOGNiZTYgMTAwNjQ0DQotLS0gYS9mcy9leHQ0L2V4dDRfamJkMi5oDQorKysgYi9mcy9l eHQ0L2V4dDRfamJkMi5oDQpAQCAtMzU5LDcgKzM1OSw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IGV4 dDRfam91cm5hbF9mb3JjZV9jb21taXQoam91cm5hbF90ICpqb3VybmFsKQ0KIAlyZXR1cm4gMDsN CiB9DQogDQotc3RhdGljIGlubGluZSBpbnQgZXh0NF9qYmQyX2ZpbGVfaW5vZGUoaGFuZGxlX3Qg KmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSkNCitzdGF0aWMgaW5saW5lIGludCBleHQ0X2pi ZDJfaW5vZGVfYWRkX3dyaXRlKGhhbmRsZV90ICpoYW5kbGUsDQorCQkJCQkgICAgc3RydWN0IGlu b2RlICppbm9kZSkNCiB7DQogCWlmIChleHQ0X2hhbmRsZV92YWxpZChoYW5kbGUpKQ0KIAkJcmV0 dXJuIGpiZDJfam91cm5hbF9pbm9kZV9hZGRfd3JpdGUoaGFuZGxlLA0KQEAgLTM2Nyw2ICszNjgs MTUgQEAgc3RhdGljIGlubGluZSBpbnQgZXh0NF9qYmQyX2ZpbGVfaW5vZGUoaGFuZGxlX3QgKmhh bmRsZSwgc3RydWN0IGlub2RlICppbm9kZSkNCiAJcmV0dXJuIDA7DQogfQ0KIA0KK3N0YXRpYyBp bmxpbmUgaW50IGV4dDRfamJkMl9pbm9kZV9hZGRfd2FpdChoYW5kbGVfdCAqaGFuZGxlLA0KKwkJ CQkJICAgc3RydWN0IGlub2RlICppbm9kZSkNCit7DQorCWlmIChleHQ0X2hhbmRsZV92YWxpZCho YW5kbGUpKQ0KKwkJcmV0dXJuIGpiZDJfam91cm5hbF9pbm9kZV9hZGRfd2FpdChoYW5kbGUsDQor CQkJCQkJICAgRVhUNF9JKGlub2RlKS0+amlub2RlKTsNCisJcmV0dXJuIDA7DQorfQ0KKw0KIHN0 YXRpYyBpbmxpbmUgdm9pZCBleHQ0X3VwZGF0ZV9pbm9kZV9mc3luY190cmFucyhoYW5kbGVfdCAq aGFuZGxlLA0KIAkJCQkJCSBzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAkJCQkJCSBpbnQgZGF0YXN5 bmMpDQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbm9kZS5jIGIvZnMvZXh0NC9pbm9kZS5jDQppbmRl eCAxNzNkYTlkNDY3ZDEuLjAxZWNjNjc5ODViYiAxMDA2NDQNCi0tLSBhL2ZzL2V4dDQvaW5vZGUu Yw0KKysrIGIvZnMvZXh0NC9pbm9kZS5jDQpAQCAtNjkyLDcgKzY5MiwxMCBAQCBvdXRfc2VtOg0K IAkJICAgICEobWFwLT5tX2ZsYWdzICYgRVhUNF9NQVBfVU5XUklUVEVOKSAmJg0KIAkJICAgICEo ZmxhZ3MgJiBFWFQ0X0dFVF9CTE9DS1NfWkVSTykgJiYNCiAJCSAgICBleHQ0X3Nob3VsZF9vcmRl cl9kYXRhKGlub2RlKSkgew0KLQkJCXJldCA9IGV4dDRfamJkMl9maWxlX2lub2RlKGhhbmRsZSwg aW5vZGUpOw0KKwkJCWlmIChmbGFncyAmIEVYVDRfR0VUX0JMT0NLU19JT19TVUJNSVQpDQorCQkJ CXJldCA9IGV4dDRfamJkMl9pbm9kZV9hZGRfd2FpdChoYW5kbGUsIGlub2RlKTsNCisJCQllbHNl DQorCQkJCXJldCA9IGV4dDRfamJkMl9pbm9kZV9hZGRfd3JpdGUoaGFuZGxlLCBpbm9kZSk7DQog CQkJaWYgKHJldCkNCiAJCQkJcmV0dXJuIHJldDsNCiAJCX0NCkBAIC0yMTY0LDcgKzIxNjcsOCBA QCBzdGF0aWMgaW50IG1wYWdlX21hcF9vbmVfZXh0ZW50KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVj dCBtcGFnZV9kYV9kYXRhICptcGQpDQogCSAqIHRoZSBkYXRhIHdhcyBjb3BpZWQgaW50byB0aGUg cGFnZSBjYWNoZS4NCiAJICovDQogCWdldF9ibG9ja3NfZmxhZ3MgPSBFWFQ0X0dFVF9CTE9DS1Nf Q1JFQVRFIHwNCi0JCQkgICBFWFQ0X0dFVF9CTE9DS1NfTUVUQURBVEFfTk9GQUlMOw0KKwkJCSAg IEVYVDRfR0VUX0JMT0NLU19NRVRBREFUQV9OT0ZBSUwgfA0KKwkJCSAgIEVYVDRfR0VUX0JMT0NL U19JT19TVUJNSVQ7DQogCWRpb3JlYWRfbm9sb2NrID0gZXh0NF9zaG91bGRfZGlvcmVhZF9ub2xv Y2soaW5vZGUpOw0KIAlpZiAoZGlvcmVhZF9ub2xvY2spDQogCQlnZXRfYmxvY2tzX2ZsYWdzIHw9 IEVYVDRfR0VUX0JMT0NLU19JT19DUkVBVEVfRVhUOw0KQEAgLTM1MzgsNyArMzU0Miw3IEBAIHN0 YXRpYyBpbnQgX19leHQ0X2Jsb2NrX3plcm9fcGFnZV9yYW5nZShoYW5kbGVfdCAqaGFuZGxlLA0K IAkJZXJyID0gMDsNCiAJCW1hcmtfYnVmZmVyX2RpcnR5KGJoKTsNCiAJCWlmIChleHQ0X3Nob3Vs ZF9vcmRlcl9kYXRhKGlub2RlKSkNCi0JCQllcnIgPSBleHQ0X2piZDJfZmlsZV9pbm9kZShoYW5k bGUsIGlub2RlKTsNCisJCQllcnIgPSBleHQ0X2piZDJfaW5vZGVfYWRkX3dyaXRlKGhhbmRsZSwg aW5vZGUpOw0KIAl9DQogDQogdW5sb2NrOg0KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvbW92ZV9leHRl bnQuYyBiL2ZzL2V4dDQvbW92ZV9leHRlbnQuYw0KaW5kZXggZmI2ZjExNzA5YWU2Li4wY2U5Nzk1 Yzc0MDQgMTAwNjQ0DQotLS0gYS9mcy9leHQ0L21vdmVfZXh0ZW50LmMNCisrKyBiL2ZzL2V4dDQv bW92ZV9leHRlbnQuYw0KQEAgLTM5MCw3ICszOTAsNyBAQCBkYXRhX2NvcHk6DQogDQogCS8qIEV2 ZW4gaW4gY2FzZSBvZiBkYXRhPXdyaXRlYmFjayBpdCBpcyByZWFzb25hYmxlIHRvIHBpbg0KIAkg KiBpbm9kZSB0byB0cmFuc2FjdGlvbiwgdG8gcHJldmVudCB1bmV4cGVjdGVkIGRhdGEgbG9zcyAq Lw0KLQkqZXJyID0gZXh0NF9qYmQyX2ZpbGVfaW5vZGUoaGFuZGxlLCBvcmlnX2lub2RlKTsNCisJ KmVyciA9IGV4dDRfamJkMl9pbm9kZV9hZGRfd3JpdGUoaGFuZGxlLCBvcmlnX2lub2RlKTsNCiAN CiB1bmxvY2tfcGFnZXM6DQogCXVubG9ja19wYWdlKHBhZ2VwWzBdKTsNCi0tIA0KMi42LjINCg0K --_003_f0a9a62a43c4419687c69fff15a7c043SGPMBX1004APACboschcom_--