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--