PATCH 1/3 implement memory mapped writing
Lino Sanfilippo <[email protected]> Tue, 02 Nov 2010 12:31:28 +0100
| Newsgroups | gmane.linux.dazuko.devel |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------090007090009030506040607 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit The following patches apply against dazukofs-3.1.4-rc2. 1. Implement mmaped writing for dazukofs: In writepage() we look for the corresponding lower page and create it if it does not exist. Then we copy the content of the upper page to the lower page and mark it dirty. This causes marked pages to be written to disk as soon as the pages are synced (i.e due to an msync() or sync()). Note that this patch also removes some of the functions that do also cause writepage() to be called, like generic_file_aio_[read|write] and splice_read() since mmap has not been tested in conjunction with these functions - also writebegin() should not be called any more now. With this the only address space operations that we should need are readpage() and writepage(). Geschäftsführender Gesellschafter: Tjark Auerbach Sitz der Gesellschaft: Tettnang Handelsregister: Amtsgericht Ulm, HRB 630992 ALLGEMEINE GESCHÄFTSBEDINGUNGEN Es gelten unsere Allgemeinen Geschäftsbedingungen (AGB). Sie finden sie in der jeweils gültigen Fassung im Internet unter http://www.avira.com/de/standard-terms-conditions-business-de *************************************************** --------------090007090009030506040607 Content-Type: text/plain; name="patch1" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="patch1" ZGlmZiAtTnVycCBkYXp1a29mcy0zLjEuNC1yYzIvZmlsZS5jIGRhenVrb2ZzLTMuMS40LXJj Mi1wYXRjaDEvZmlsZS5jCi0tLSBkYXp1a29mcy0zLjEuNC1yYzIvZmlsZS5jCTIwMTAtMTAt MTYgMTg6MDM6NDkuMDAwMDAwMDAwICswMjAwCisrKyBkYXp1a29mcy0zLjEuNC1yYzItcGF0 Y2gxL2ZpbGUuYwkyMDEwLTExLTAyIDExOjU2OjAxLjAwMDAwMDAwMCArMDEwMApAQCAtMzE5 LDcgKzMxOSw3IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfbW1hcChzdHJ1Y3QgZmlsZSAqZmkK IAlpZiAoIWxvd2VyX2ZpbGUtPmZfb3AgfHwgIWxvd2VyX2ZpbGUtPmZfb3AtPm1tYXApCiAJ CXJldHVybiAtRU5PREVWOwogCi0JcmV0dXJuIGdlbmVyaWNfZmlsZV9yZWFkb25seV9tbWFw KGZpbGUsIHZtKTsKKwlyZXR1cm4gZ2VuZXJpY19maWxlX21tYXAoZmlsZSwgdm0pOwogfQog CiAvKioKQEAgLTM0Miw5ICszNDIsNyBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX21tYXAoc3Ry dWN0IGZpbGUgKmZpCiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX21h aW5fZm9wcyA9IHsKIAkubGxzZWVrCQk9IGRhenVrb2ZzX2xsc2VlaywKIAkucmVhZAkJPSBk YXp1a29mc19yZWFkLAotCS5haW9fcmVhZAk9IGdlbmVyaWNfZmlsZV9haW9fcmVhZCwKIAku d3JpdGUJCT0gZGF6dWtvZnNfd3JpdGUsCi0JLmFpb193cml0ZQk9IGdlbmVyaWNfZmlsZV9h aW9fd3JpdGUsCiAJLnJlYWRkaXIJPSBkYXp1a29mc19yZWFkZGlyLAogCS51bmxvY2tlZF9p b2N0bAk9IGRhenVrb2ZzX3VubG9ja2VkX2lvY3RsLAogI2lmZGVmIENPTkZJR19DT01QQVQK QEAgLTM1Niw3ICszNTQsNiBAQCBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVr b2ZzX21hCiAJLnJlbGVhc2UJPSBkYXp1a29mc19yZWxlYXNlLAogCS5mc3luYwkJPSBkYXp1 a29mc19mc3luYywKIAkuZmFzeW5jCQk9IGRhenVrb2ZzX2Zhc3luYywKLQkuc3BsaWNlX3Jl YWQJPSBnZW5lcmljX2ZpbGVfc3BsaWNlX3JlYWQsCiB9OwogCiAvKioKQEAgLTM5Miw1ICsz ODksNCBAQCBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX2RpCiAJLnJl bGVhc2UJPSBkYXp1a29mc19yZWxlYXNlLAogCS5mc3luYwkJPSBkYXp1a29mc19mc3luYywK IAkuZmFzeW5jCQk9IGRhenVrb2ZzX2Zhc3luYywKLQkuc3BsaWNlX3JlYWQJPSBnZW5lcmlj X2ZpbGVfc3BsaWNlX3JlYWQsCiB9OwpkaWZmIC1OdXJwIGRhenVrb2ZzLTMuMS40LXJjMi9t bWFwLmMgZGF6dWtvZnMtMy4xLjQtcmMyLXBhdGNoMS9tbWFwLmMKLS0tIGRhenVrb2ZzLTMu MS40LXJjMi9tbWFwLmMJMjAxMC0wNS0zMCAxMjo1ODoyMi4wMDAwMDAwMDAgKzAyMDAKKysr IGRhenVrb2ZzLTMuMS40LXJjMi1wYXRjaDEvbW1hcC5jCTIwMTAtMTEtMDIgMTI6MDA6NDUu MDAwMDAwMDAwICswMTAwCkBAIC0yNywxMSArMjcsNiBAQAogCiAjaW5jbHVkZSAiZGF6dWtv ZnNfZnMuaCIKIAotc3RhdGljIGludCBkYXp1a29mc193cml0ZXBhZ2Uoc3RydWN0IHBhZ2Ug KnBhZ2UsIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQotewotCS8qIG1tYXAgcmVh ZC1vbmx5ICovCi0JcmV0dXJuIC1FSU5WQUw7Ci19CiAKIC8qKgogICogRGVzY3JpcHRpb246 IENhbGxlZCBieSB0aGUgVk0gdG8gcmVhZCBhIHBhZ2UgZnJvbSBiYWNraW5nIHN0b3JlLiBU aGUgcGFnZQpAQCAtOTgsMTQgKzkzLDY2IEBAIG91dDoKIAlyZXR1cm4gZXJyOwogfQogCi1p bnQgZGF6dWtvZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmYsIHN0cnVjdCBhZGRyZXNz X3NwYWNlICptYXBwaW5nLAotCQkJIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWdu ZWQgZmxhZ3MsCi0JCQkgc3RydWN0IHBhZ2UgKipwYWdlcCwgdm9pZCAqKmZzZGF0YSkKKwor CisvKioKKyAqIENhbGxlZCBpZiBhIHBhZ2UgZmF1bHQgb2NjdXJlZCBkdWUgdG8gcmVhZGlu ZyBvciB3cml0aW5nIHRvIHVwcGVyICBtbWFwZWQgCisgKiBmaWxlLiBXZSBnZXQgdGhlIGxv d2VyIHBhZ2UgYW5kIG1hcmsgaXQgZGlydHksIHdlIERPTlQgY2FsbCBsb3dlciAKKyAqIHdy aXRlcGFnZSgpIHlldC4gSW5zdGVhZCB3ZSBsZXQgdGhpcyBiZSBkb25lIGJ5IG1zeW5jKCkg b3Igb3RoZXIga2VybmVsIAorICogZmFjaWxpdGllcyAocGRmbHVzaCkgdGhhdCB0cnkgdG8g d3JpdGUgcGFnZXMgdG8gZGlzYy4gCisgKi8KK3N0YXRpYyBpbnQgZGF6dWtvZnNfd3JpdGVw YWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYykK IHsKLQkvKiBtbWFwIHJlYWQtb25seSAqLwotCXJldHVybiAtRUlOVkFMOworCXN0cnVjdCBp bm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OworCXN0cnVjdCBpbm9kZSAqbG93 ZXJfaW5vZGUgPSBnZXRfbG93ZXJfaW5vZGUoaW5vZGUpOworCXN0cnVjdCBwYWdlICpsb3dl cl9wYWdlOworCWNoYXIgKnBhZ2VfZGF0YTsKKwljaGFyICpsb3dlcl9wYWdlX2RhdGE7CisJ aW50IHJ2ID0gMDsKKworCWxvd2VyX3BhZ2UgPSBncmFiX2NhY2hlX3BhZ2UobG93ZXJfaW5v ZGUtPmlfbWFwcGluZywgcGFnZS0+aW5kZXgpOworCisJaWYgKCFsb3dlcl9wYWdlKSB7CisJ CXByaW50ayhLRVJOX0VSUiAiZGF6dWtvZnM6IEVycm9yIGdldHRpbmcgbG93ZXIgcGFnZS5c biIpOworCQlydiA9IC1FTk9NRU07CisJCWdvdG8gZmFpbDsKKwl9CisJCisJcGFnZV9kYXRh ID0gKGNoYXIgKikga21hcChwYWdlKTsKKwlpZiAoIXBhZ2VfZGF0YSkgeworCQlydiA9IC1F Tk9NRU07CisJCXByaW50ayhLRVJOX0VSUiAiZGF6dWtvZnM6IEVycm9yIG1hcHBpbmcgcGFn ZS5cbiIpOworCQl1bmxvY2tfcGFnZShsb3dlcl9wYWdlKTsKKwkJZ290byBmYWlsOworCX0K KworCWxvd2VyX3BhZ2VfZGF0YSA9IChjaGFyICopIGttYXAobG93ZXJfcGFnZSk7CisJaWYg KCFsb3dlcl9wYWdlX2RhdGEpIHsKKwkJcnYgPSAtRU5PTUVNOworCQlwcmludGsoS0VSTl9F UlIgImRhenVrb2ZzOiBFcnJvciBtYXBwaW5nIGxvd2VyIHBhZ2UuXG4iKTsKKwkJa3VubWFw KHBhZ2UpOworCQl1bmxvY2tfcGFnZShsb3dlcl9wYWdlKTsKKwkJZ290byBmYWlsOworCX0K KworCW1lbWNweShsb3dlcl9wYWdlX2RhdGEsIHBhZ2VfZGF0YSwgUEFHRV9DQUNIRV9TSVpF KTsKKworCWt1bm1hcChwYWdlKTsKKwlrdW5tYXAobG93ZXJfcGFnZSk7CisKKwkvKiBNYXJr IGxvd2VyIHBhZ2UgZGlydHkuIERvbnQgY2FsbCBsb3dlciB3cml0ZXBhZ2UoKSB5ZXQuICov CisJc2V0X3BhZ2VfZGlydHkobG93ZXJfcGFnZSk7CisJdW5sb2NrX3BhZ2UobG93ZXJfcGFn ZSk7CisJU2V0UGFnZVVwdG9kYXRlKHBhZ2UpOworCitmYWlsOgorCXVubG9ja19wYWdlKHBh Z2UpOworCisJcmV0dXJuIHJ2OwogfQogCisKKwogLyoqCiAgKiBVbnVzZWQgb3BlcmF0aW9u czoKICAqICAgLSBzeW5jX3BhZ2UKQEAgLTEyNiw1ICsxNzMsNCBAQCBpbnQgZGF6dWtvZnNf d3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmYsCiBjb25zdCBzdHJ1Y3QgYWRkcmVzc19zcGFj ZV9vcGVyYXRpb25zIGRhenVrb2ZzX2FvcHMgPSB7CiAJLndyaXRlcGFnZQk9IGRhenVrb2Zz X3dyaXRlcGFnZSwKIAkucmVhZHBhZ2UJPSBkYXp1a29mc19yZWFkcGFnZSwKLQkud3JpdGVf YmVnaW4JPSBkYXp1a29mc193cml0ZV9iZWdpbiwKIH07Cg== --------------090007090009030506040607 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Dazuko-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/dazuko-devel --------------090007090009030506040607--