From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Yu Subject: Re: [PATCH 3/3 v3] f2fs: fix to truncate inline data in inode page when setattr Date: Tue, 29 Apr 2014 16:12:27 +0800 Message-ID: <001a01cf6382$dcf18db0$96d4a910$@samsung.com> References: <001801cf6370$e0553040$a0ff90c0$@samsung.com> <1398752174.13268.4.camel@kjgkr> <001901cf6380$43643c80$ca2cb580$@samsung.com> <1398758534.13268.8.camel@kjgkr> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1Wf3AI-0008CZ-Lk for linux-f2fs-devel@lists.sourceforge.net; Tue, 29 Apr 2014 08:13:22 +0000 Received: from mailout2.samsung.com ([203.254.224.25]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-MD5:128) (Exim 4.76) id 1Wf3AG-0006by-DS for linux-f2fs-devel@lists.sourceforge.net; Tue, 29 Apr 2014 08:13:22 +0000 Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N4S00F3Y9I0WEA0@mailout2.samsung.com> for linux-f2fs-devel@lists.sourceforge.net; Tue, 29 Apr 2014 17:13:12 +0900 (KST) In-reply-to: <1398758534.13268.8.camel@kjgkr> Content-language: zh-cn List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net To: jaegeuk.kim@samsung.com Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net SGkgS2ltLAoKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEphZWdldWsgS2lt IFttYWlsdG86amFlZ2V1ay5raW1Ac2Ftc3VuZy5jb21dCj4gU2VudDogVHVlc2RheSwgQXByaWwg MjksIDIwMTQgNDowMiBQTQo+IFRvOiBDaGFvIFl1Cj4gQ2M6IGxpbnV4LWYyZnMtZGV2ZWxAbGlz dHMuc291cmNlZm9yZ2UubmV0OyBsaW51eC1mc2RldmVsQHZnZXIua2VybmVsLm9yZzsKPiBsaW51 eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnCj4gU3ViamVjdDogUkU6IFtmMmZzLWRldl1bUEFUQ0gg My8zIHYzXSBmMmZzOiBmaXggdG8gdHJ1bmNhdGUgaW5saW5lIGRhdGEgaW4gaW5vZGUgcGFnZSB3 aGVuIHNldGF0dHIKPiAKPiBIaSwKPiAKPiAyMDE0LTA0LTI5ICjtmZQpLCAxNTo1MyArMDgwMCwg Q2hhbyBZdToKPiA+IEhpIEtpbSwKPiA+Cj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t Cj4gPiA+IEZyb206IEphZWdldWsgS2ltIFttYWlsdG86amFlZ2V1ay5raW1Ac2Ftc3VuZy5jb21d Cj4gPiA+IFNlbnQ6IFR1ZXNkYXksIEFwcmlsIDI5LCAyMDE0IDI6MTYgUE0KPiA+ID4gVG86IENo YW8gWXUKPiA+ID4gQ2M6IGxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0OyBs aW51eC1mc2RldmVsQHZnZXIua2VybmVsLm9yZzsKPiA+ID4gbGludXgta2VybmVsQHZnZXIua2Vy bmVsLm9yZwo+ID4gPiBTdWJqZWN0OiBSZTogW2YyZnMtZGV2XVtQQVRDSCAzLzMgdjNdIGYyZnM6 IGZpeCB0byB0cnVuY2F0ZSBpbmxpbmUgZGF0YSBpbiBpbm9kZSBwYWdlIHdoZW4KPiBzZXRhdHRy Cj4gPiA+Cj4gPiA+IEhpLAo+ID4gPgo+ID4gPiAyMDE0LTA0LTI5ICjtmZQpLCAxNDowMyArMDgw MCwgQ2hhbyBZdToKPiA+ID4gPiBQcmV2aW91cyB3ZSBkbyBub3QgdHJ1bmNhdGUgaW5saW5lIGRh dGEgaW4gaW5vZGUgcGFnZSB3aGVuIHNldGF0dHIsIHNvIGZvbGxvd2luZwo+ID4gPiA+IGNhc2Ug Y291bGQgc3RpbGwgcmVhZCB0aGUgaW5saW5lIGRhdGEgd2hpY2ggaGFzIGFscmVhZHkgdHJ1bmNh dGVkOgo+ID4gPiA+Cj4gPiA+ID4gMS53cml0ZSBpbmxpbmUgZGF0YQo+ID4gPiA+IDIuZnRydW5j YXRlIHNpemUgdG8gMAo+ID4gPiA+IDMuZnRydW5jYXRlIHNpemUgdG8gbWF4IGlubGluZSBkYXRh IHNpemUKPiA+ID4gPiA0LnJlYWQgZnJvbSBvZmZzZXQgMAo+ID4gPiA+Cj4gPiA+ID4gVGhpcyBw YXRjaCBpbnRyb2R1Y2VzIHRydW5jYXRlX2lubGluZV9kYXRhKCkgdG8gZml4IHRoaXMgcHJvYmxl bS4KPiA+ID4gPgo+ID4gPiA+IGNoYW5nZSBsb2cgZnJvbSB2MToKPiA+ID4gPiAgbyBmaXggYSBi dWcgYW5kIGRvIG5vdCB0cnVuY2F0ZSBmaXJzdCBwYWdlIGRhdGEgYWZ0ZXIgdHJ1bmNhdGUgaW5s aW5lIGRhdGEuCj4gPiA+ID4gY2hhbmdlIGxvZyBmcm9tIHYyOgo+ID4gPiA+ICBvIHdhaXQgdG8g d3JpdGViYWNrIGZvciBpbm9kZSBwYWdlIGlmIGl0IHdhcyBhbHJlYWR5IHN1Ym1pdHRlZC4KPiA+ ID4gPgo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IENoYW8gWXUgPGNoYW8yLnl1QHNhbXN1bmcuY29t Pgo+ID4gPiA+IC0tLQo+ID4gPiA+ICBmcy9mMmZzL2YyZnMuaCAgIHwgICAgMSArCj4gPiA+ID4g IGZzL2YyZnMvZmlsZS5jICAgfCAgICAzICsrKwo+ID4gPiA+ICBmcy9mMmZzL2lubGluZS5jIHwg ICAxOSArKysrKysrKysrKysrKysrKysrCj4gPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMjMgaW5z ZXJ0aW9ucygrKQo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2ZzL2YyZnMvZjJmcy5oIGIv ZnMvZjJmcy9mMmZzLmgKPiA+ID4gPiBpbmRleCAyYjY3Njc5Li42NzZhMmM2IDEwMDY0NAo+ID4g PiA+IC0tLSBhL2ZzL2YyZnMvZjJmcy5oCj4gPiA+ID4gKysrIGIvZnMvZjJmcy9mMmZzLmgKPiA+ ID4gPiBAQCAtMTQxMCw1ICsxNDEwLDYgQEAgYm9vbCBmMmZzX21heV9pbmxpbmUoc3RydWN0IGlu b2RlICopOwo+ID4gPiA+ICBpbnQgZjJmc19yZWFkX2lubGluZV9kYXRhKHN0cnVjdCBpbm9kZSAq LCBzdHJ1Y3QgcGFnZSAqKTsKPiA+ID4gPiAgaW50IGYyZnNfY29udmVydF9pbmxpbmVfZGF0YShz dHJ1Y3QgaW5vZGUgKiwgcGdvZmZfdCk7Cj4gPiA+ID4gIGludCBmMmZzX3dyaXRlX2lubGluZV9k YXRhKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgcGFnZSAqLCB1bnNpZ25lZCBpbnQpOwo+ID4gPiA+ ICt2b2lkIHRydW5jYXRlX2lubGluZV9kYXRhKHN0cnVjdCBpbm9kZSAqLCB1NjQpOwo+ID4gPiA+ ICBpbnQgcmVjb3Zlcl9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IHBhZ2UgKik7 Cj4gPiA+ID4gICNlbmRpZgo+ID4gPiA+IGRpZmYgLS1naXQgYS9mcy9mMmZzL2ZpbGUuYyBiL2Zz L2YyZnMvZmlsZS5jCj4gPiA+ID4gaW5kZXggYjlmNGZiZi4uZDk3ZTVjNCAxMDA2NDQKPiA+ID4g PiAtLS0gYS9mcy9mMmZzL2ZpbGUuYwo+ID4gPiA+ICsrKyBiL2ZzL2YyZnMvZmlsZS5jCj4gPiA+ ID4gQEAgLTM2OSw2ICszNjksOSBAQCBzdGF0aWMgdm9pZCB0cnVuY2F0ZV9wYXJ0aWFsX2RhdGFf cGFnZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1NjQgZnJvbSkKPiA+ID4gPiAgCXVuc2lnbmVkIG9m ZnNldCA9IGZyb20gJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7Cj4gPiA+ID4gIAlzdHJ1Y3QgcGFn ZSAqcGFnZTsKPiA+ID4gPgo+ID4gPiA+ICsJaWYgKGYyZnNfaGFzX2lubGluZV9kYXRhKGlub2Rl KSkKPiA+ID4gPiArCQlyZXR1cm4gdHJ1bmNhdGVfaW5saW5lX2RhdGEoaW5vZGUsIGZyb20pOwo+ ID4gPiA+ICsKPiA+ID4gPiAgCWlmICghb2Zmc2V0KQo+ID4gPiA+ICAJCXJldHVybjsKPiA+ID4g Pgo+ID4gPiA+IGRpZmYgLS1naXQgYS9mcy9mMmZzL2lubGluZS5jIGIvZnMvZjJmcy9pbmxpbmUu Ywo+ID4gPiA+IGluZGV4IDMyNThjN2MuLjZhMTM5OTcgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZnMv ZjJmcy9pbmxpbmUuYwo+ID4gPiA+ICsrKyBiL2ZzL2YyZnMvaW5saW5lLmMKPiA+ID4gPiBAQCAt MTc2LDYgKzE3NiwyNSBAQCBpbnQgZjJmc193cml0ZV9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUg Kmlub2RlLAo+ID4gPiA+ICAJcmV0dXJuIDA7Cj4gPiA+ID4gIH0KPiA+ID4gPgo+ID4gPiA+ICt2 b2lkIHRydW5jYXRlX2lubGluZV9kYXRhKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHU2NCBmcm9tKQo+ ID4gPiA+ICt7Cj4gPiA+ID4gKwlzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkgPSBGMkZTX1NCKGlu b2RlLT5pX3NiKTsKPiA+ID4gPiArCXN0cnVjdCBwYWdlICppcGFnZTsKPiA+ID4gPiArCj4gPiA+ ID4gKwlpZiAoZnJvbSA+PSBNQVhfSU5MSU5FX0RBVEEpCj4gPiA+ID4gKwkJcmV0dXJuOwo+ID4g PiA+ICsKPiA+ID4gPiArCWlwYWdlID0gZ2V0X25vZGVfcGFnZShzYmksIGlub2RlLT5pX2lubyk7 Cj4gPiA+ID4gKwlpZiAoSVNfRVJSKGlwYWdlKSkKPiA+ID4gPiArCQlyZXR1cm47Cj4gPiA+ID4g Kwo+ID4gPiA+ICsJZjJmc193YWl0X29uX3BhZ2Vfd3JpdGViYWNrKGlwYWdlLCBOT0RFKTsKPiA+ ID4KPiA+ID4gVGhlIGdldF9ub2RlX3BhZ2UoKSB0cmlnZ2VycywKPiA+ID4gIGdyYWJfY2FjaGVf cGFnZV93cml0ZV9iZWdpbigpCj4gPiA+ICAgLT4gd2FpdF9mb3Jfc3RhYmxlX3BhZ2UoKQo+ID4g PiAgICAgIC0+IHdhaXRfb25fcGFnZV93cml0ZWJhY2soKS4KPiA+Cj4gPiBPaCwgaXQncyBteSBt aXN0YWtlIGZvciB0aGlzIG1pc3NpbmcsIHRoYW5rcyBmb3IgdGhlIG1lbnRpb24uOikKPiA+Cj4g PiA+Cj4gPiA+IEFueSBidWdzIGluIHRoZXJlPwo+ID4KPiA+IElmIHdlIHdhaXQgaW4gZ3JhYl9j YWNoZV9wYWdlX3dyaXRlX2JlZ2luKCksIG1heWJlIHdlIHdpbGwgZmFjZSBsb25nIHRpbWUgZGVs YXkKPiA+IG9yIHBvdGVudGlhbCBkZWFkbG9jayBjYXVzZWQgYnkgZjJmcyBiaW8gY2FjaGUuIFNv IGhvdyBhYm91dCB1c2UKPiA+IGdyYWJfY2FjaGVfcGFnZSAmIGYyZnNfd2FpdF9vbl9wYWdlX3dy aXRlYmFjayB0byBhdm9pZCB0aGlzPwo+IAo+IE5pY2UgY2F0Y2guIDopCj4gSU1PLCBpdCdkIGJl dHRlciBtZXJnZSB5b3VyIHYyLCBhbmQgbGV0IG1lIGludmVzdGlnYXRlIGFsbCB0aGUgcGF0aHMg dG8KPiBhdm9pZCB0aGF0Lgo+IElzIGl0IG9rYXk/CgpJdCdzIG9rYXksIGFuZCB0aGFua3MgZm9y IHlvdXIgcmV2aWV3LiA6KQpSZWdhcmRzLgoKPiAKPiA+Cj4gPiA+Cj4gPiA+ID4gKwl6ZXJvX3Vz ZXJfc2VnbWVudChpcGFnZSwgSU5MSU5FX0RBVEFfT0ZGU0VUICsgZnJvbSwKPiA+ID4gPiArCQkJ CUlOTElORV9EQVRBX09GRlNFVCArIE1BWF9JTkxJTkVfREFUQSk7Cj4gPiA+ID4gKwlzZXRfcGFn ZV9kaXJ0eShpcGFnZSk7Cj4gPiA+ID4gKwlmMmZzX3B1dF9wYWdlKGlwYWdlLCAxKTsKPiA+ID4g PiArfQo+ID4gPiA+ICsKPiA+ID4gPiAgaW50IHJlY292ZXJfaW5saW5lX2RhdGEoc3RydWN0IGlu b2RlICppbm9kZSwgc3RydWN0IHBhZ2UgKm5wYWdlKQo+ID4gPiA+ICB7Cj4gPiA+ID4gIAlzdHJ1 Y3QgZjJmc19zYl9pbmZvICpzYmkgPSBGMkZTX1NCKGlub2RlLT5pX3NiKTsKPiA+ID4KPiA+ID4g LS0KPiA+ID4gSmFlZ2V1ayBLaW0KPiA+ID4gU2Ftc3VuZwo+ID4KPiA+IC0tCj4gPiBUbyB1bnN1 YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgt a2VybmVsIiBpbgo+ID4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtl cm5lbC5vcmcKPiA+IE1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5v cmcvbWFqb3Jkb21vLWluZm8uaHRtbAo+ID4gUGxlYXNlIHJlYWQgdGhlIEZBUSBhdCAgaHR0cDov L3d3dy50dXgub3JnL2xrbWwvCj4gCj4gLS0KPiBKYWVnZXVrIEtpbQo+IFNhbXN1bmcKCgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIkFjY2VsZXJhdGUgRGV2IEN5Y2xlcyB3aXRoIEF1dG9tYXRlZCBD cm9zcy1Ccm93c2VyIFRlc3RpbmcgLSBGb3IgRlJFRQpJbnN0YW50bHkgcnVuIHlvdXIgU2VsZW5p dW0gdGVzdHMgYWNyb3NzIDMwMCsgYnJvd3Nlci9PUyBjb21ib3MuICBHZXQgCnVucGFyYWxsZWxl ZCBzY2FsYWJpbGl0eSBmcm9tIHRoZSBiZXN0IFNlbGVuaXVtIHRlc3RpbmcgcGxhdGZvcm0gYXZh aWxhYmxlLgpTaW1wbGUgdG8gdXNlLiBOb3RoaW5nIHRvIGluc3RhbGwuIEdldCBzdGFydGVkIG5v dyBmb3IgZnJlZS4iCmh0dHA6Ly9wLnNmLm5ldC9zZnUvU2F1Y2VMYWJzCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LWYyZnMtZGV2ZWwgbWFpbGlu ZyBsaXN0CkxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlz dHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4LWYyZnMtZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756515AbaD2INS (ORCPT ); Tue, 29 Apr 2014 04:13:18 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:55538 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756455AbaD2INN convert rfc822-to-8bit (ORCPT ); Tue, 29 Apr 2014 04:13:13 -0400 X-AuditID: cbfee61a-b7f2b6d000006c4d-53-535f5f18f2b0 From: Chao Yu To: jaegeuk.kim@samsung.com Cc: linux-f2fs-devel@lists.sourceforge.net, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org References: <001801cf6370$e0553040$a0ff90c0$@samsung.com> <1398752174.13268.4.camel@kjgkr> <001901cf6380$43643c80$ca2cb580$@samsung.com> <1398758534.13268.8.camel@kjgkr> In-reply-to: <1398758534.13268.8.camel@kjgkr> Subject: RE: [f2fs-dev][PATCH 3/3 v3] f2fs: fix to truncate inline data in inode page when setattr Date: Tue, 29 Apr 2014 16:12:27 +0800 Message-id: <001a01cf6382$dcf18db0$96d4a910$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT X-Mailer: Microsoft Outlook 14.0 Thread-index: AQK5SRT2d708D3IY6HeK19r/RY85WQJfKFt6AmW4LbwBhDbBUJkiKdXA Content-language: zh-cn X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKLMWRmVeSWpSXmKPExsVy+t9jAV2J+Phgg2vH1C2u7/rLZHFpkbvF nr0nWSwu75rD5sDisXvBZyaPvi2rGD0+b5ILYI7isklJzcksSy3St0vgynh4+jpzwTH1ii8T 1rI2MG6U62Lk5JAQMJF49X0lC4QtJnHh3nq2LkYuDiGBRYwST3etZYVwfjBK/G9ayghSxSag IrG84z8TiC0iIC0x69M8sG5mgUyJe00zmCEa1jJKXJwCkeAEunr18V1gzcICKRJnnn0As1kE VCW2L/gPVsMrYCnRtv0BM4QtKPFj8j2gOAfQUHWJKVNyIeZrSzx5d4EV4lIFiR1nXzNC3OAm cW/yDHaIGnGJjUdusUxgFJqFZNIshEmzkEyahaRjASPLKkbR1ILkguKk9FxDveLE3OLSvHS9 5PzcTYzgwH8mtYNxZYPFIUYBDkYlHl6DqLhgIdbEsuLK3EOMEhzMSiK8+VbxwUK8KYmVValF +fFFpTmpxYcYpTlYlMR5D7RaBwoJpCeWpGanphakFsFkmTg4pRoYs733scelph5pXL112+vf jmI7XlvNOyGXcXs3k4n7d843n7XrJ1Wb2EzfHxp6acbJXxMudDEcORBkXf3KP3Pv10k1N+ao zSi7K75Uv6BpqbXPtA8cf7l3R/W87do4peVUV+Er3ld7HdZLMh2OfrzvuPOZkmaHtvAJnPNi p97u0k7P31+084rHfSWW4oxEQy3mouJEAML+rOJ4AgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Kim, > -----Original Message----- > From: Jaegeuk Kim [mailto:jaegeuk.kim@samsung.com] > Sent: Tuesday, April 29, 2014 4:02 PM > To: Chao Yu > Cc: linux-f2fs-devel@lists.sourceforge.net; linux-fsdevel@vger.kernel.org; > linux-kernel@vger.kernel.org > Subject: RE: [f2fs-dev][PATCH 3/3 v3] f2fs: fix to truncate inline data in inode page when setattr > > Hi, > > 2014-04-29 (화), 15:53 +0800, Chao Yu: > > Hi Kim, > > > > > -----Original Message----- > > > From: Jaegeuk Kim [mailto:jaegeuk.kim@samsung.com] > > > Sent: Tuesday, April 29, 2014 2:16 PM > > > To: Chao Yu > > > Cc: linux-f2fs-devel@lists.sourceforge.net; linux-fsdevel@vger.kernel.org; > > > linux-kernel@vger.kernel.org > > > Subject: Re: [f2fs-dev][PATCH 3/3 v3] f2fs: fix to truncate inline data in inode page when > setattr > > > > > > Hi, > > > > > > 2014-04-29 (화), 14:03 +0800, Chao Yu: > > > > Previous we do not truncate inline data in inode page when setattr, so following > > > > case could still read the inline data which has already truncated: > > > > > > > > 1.write inline data > > > > 2.ftruncate size to 0 > > > > 3.ftruncate size to max inline data size > > > > 4.read from offset 0 > > > > > > > > This patch introduces truncate_inline_data() to fix this problem. > > > > > > > > change log from v1: > > > > o fix a bug and do not truncate first page data after truncate inline data. > > > > change log from v2: > > > > o wait to writeback for inode page if it was already submitted. > > > > > > > > Signed-off-by: Chao Yu > > > > --- > > > > fs/f2fs/f2fs.h | 1 + > > > > fs/f2fs/file.c | 3 +++ > > > > fs/f2fs/inline.c | 19 +++++++++++++++++++ > > > > 3 files changed, 23 insertions(+) > > > > > > > > diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h > > > > index 2b67679..676a2c6 100644 > > > > --- a/fs/f2fs/f2fs.h > > > > +++ b/fs/f2fs/f2fs.h > > > > @@ -1410,5 +1410,6 @@ bool f2fs_may_inline(struct inode *); > > > > int f2fs_read_inline_data(struct inode *, struct page *); > > > > int f2fs_convert_inline_data(struct inode *, pgoff_t); > > > > int f2fs_write_inline_data(struct inode *, struct page *, unsigned int); > > > > +void truncate_inline_data(struct inode *, u64); > > > > int recover_inline_data(struct inode *, struct page *); > > > > #endif > > > > diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c > > > > index b9f4fbf..d97e5c4 100644 > > > > --- a/fs/f2fs/file.c > > > > +++ b/fs/f2fs/file.c > > > > @@ -369,6 +369,9 @@ static void truncate_partial_data_page(struct inode *inode, u64 from) > > > > unsigned offset = from & (PAGE_CACHE_SIZE - 1); > > > > struct page *page; > > > > > > > > + if (f2fs_has_inline_data(inode)) > > > > + return truncate_inline_data(inode, from); > > > > + > > > > if (!offset) > > > > return; > > > > > > > > diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c > > > > index 3258c7c..6a13997 100644 > > > > --- a/fs/f2fs/inline.c > > > > +++ b/fs/f2fs/inline.c > > > > @@ -176,6 +176,25 @@ int f2fs_write_inline_data(struct inode *inode, > > > > return 0; > > > > } > > > > > > > > +void truncate_inline_data(struct inode *inode, u64 from) > > > > +{ > > > > + struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb); > > > > + struct page *ipage; > > > > + > > > > + if (from >= MAX_INLINE_DATA) > > > > + return; > > > > + > > > > + ipage = get_node_page(sbi, inode->i_ino); > > > > + if (IS_ERR(ipage)) > > > > + return; > > > > + > > > > + f2fs_wait_on_page_writeback(ipage, NODE); > > > > > > The get_node_page() triggers, > > > grab_cache_page_write_begin() > > > -> wait_for_stable_page() > > > -> wait_on_page_writeback(). > > > > Oh, it's my mistake for this missing, thanks for the mention.:) > > > > > > > > Any bugs in there? > > > > If we wait in grab_cache_page_write_begin(), maybe we will face long time delay > > or potential deadlock caused by f2fs bio cache. So how about use > > grab_cache_page & f2fs_wait_on_page_writeback to avoid this? > > Nice catch. :) > IMO, it'd better merge your v2, and let me investigate all the paths to > avoid that. > Is it okay? It's okay, and thanks for your review. :) Regards. > > > > > > > > > > + zero_user_segment(ipage, INLINE_DATA_OFFSET + from, > > > > + INLINE_DATA_OFFSET + MAX_INLINE_DATA); > > > > + set_page_dirty(ipage); > > > > + f2fs_put_page(ipage, 1); > > > > +} > > > > + > > > > int recover_inline_data(struct inode *inode, struct page *npage) > > > > { > > > > struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb); > > > > > > -- > > > Jaegeuk Kim > > > Samsung > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ > > -- > Jaegeuk Kim > Samsung