[patch] smbfs in 2.3.18(ac#)

Urban Widmark (urban@svenskatest.se)
Tue, 21 Sep 1999 20:32:32 +0200 (CEST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

---1463780587-1567069623-937938067=:1056
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.10.9909212022441.1056@cola.svenskatest.se>

Hello ac-maintainer, smbfs maintainer, list

This is my attempt at getting smbfs to work with 2.3.x.

This patch:
* adds a 'get_cached_page' with inspiration from 2.2 mm/filemap.c
* changes the locking for inode->readpage/writepage
* tries to use macros instead of setting PG_ values
* smb_write_one_page is now of type writepage_t
* debug messages don't printk non-null terminated strings
(it oops'ed me ...)

This should apply cleanly to any 2.3.18 (+ac#).

I have tested this on a few machines (plain 2.3.18, ac5, ac7). Me and at
least one more person have been unable to crash it so maybe it is fit for
a development kernel. Oh, not only does it not crash, it shows files and
allows reading & writing. :)

Still, someone who understands these things called page cache, memory
management should perhaps have a look ...

Questions:
SetPageUptodate(page);
I added a set PG_uptodate after having written the page. To me that seemed
logical, but maybe that flag is always already set when it is time to
write something? Or shouldn't be set?
include/linux/mm.h disagrees with me (when read it's uptodate) and I'd
like to know why I'm wrong.

How do I check that the #locked and allocated pages does not increase
without ever decreasing? It would be nice to test that.

/Urban, not sure which maintainer to send this to ... sending it to both
to let them fight it out :)

---1463780587-1567069623-937938067=:1056
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="smbfs-page-cache.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9909212021070.1056@cola.svenskatest.se>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME="smbfs-page-cache.patch"

ZGlmZiAtdXIgbGludXgub3JpZy9mcy9zbWJmcy9jYWNoZS5jIGxpbnV4L2Zz
L3NtYmZzL2NhY2hlLmMNCi0tLSBsaW51eC5vcmlnL2ZzL3NtYmZzL2NhY2hl
LmMJTW9uIE1hciAgOCAwMDoyNToyMyAxOTk5DQorKysgbGludXgvZnMvc21i
ZnMvY2FjaGUuYwlTdW4gU2VwIDE5IDIxOjQzOjE0IDE5OTkNCkBAIC0xNCwx
MiArMTQsNjcgQEANCiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiAjaW5jbHVk
ZSA8bGludXgvZGlyZW50Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3NtYl9mcy5o
Pg0KKyNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQogDQogI2luY2x1ZGUg
PGFzbS9wYWdlLmg+DQogDQogI2RlZmluZSBTTUJGU19QQVJBTk9JQSAxDQog
LyogI2RlZmluZSBTTUJGU19ERUJVR19WRVJCT1NFIDEgKi8NCiANCisjaWZk
ZWYgU01CRlNfREVCVUdfVkVSQk9TRQ0KKy8qDQorICogUHJpbnQgYSBjYWNo
ZV9kaXJlbnQtPm5hbWUsIG1heCA4MCBjaGFycw0KKyAqIFlvdSBjYW4ndCBq
dXN0IHByaW50ayBub24tbnVsbCB0ZXJtaW5hdGVkIHN0cmluZ3MgLi4uDQor
ICovDQorcHJpbnRrX25hbWUoY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbikN
Cit7DQorCWNoYXIgYnVmWzgxXTsNCisNCisJaWYobGVuID4gODApDQorCQls
ZW4gPSA4MDsNCisJc3RybmNweShidWYsIG5hbWUsIGxlbik7DQorCWJ1Zlts
ZW5dID0gMDsNCisJcHJpbnRrKGJ1Zik7DQorfQ0KKyNlbmRpZg0KKw0KKy8q
DQorICogR2V0IGEgcGFnZSBmb3IgdGhpcyBpbm9kZSwgaWYgbmV3IGlzIHNl
dCB0aGVuIHdlIHdhbnQgdG8gYWxsb2NhdGUNCisgKiB0aGUgcGFnZSBpZiBp
dCBpc24ndCBpbiBtZW1vcnkuIEFzIEkgdW5kZXJzdGFuZCBpdCB0aGUgcmVz
dCBvZiB0aGUNCisgKiBzbWItY2FjaGUgY29kZSBhc3N1bWVzIHdlIHJldHVy
biBhIGxvY2tlZCBwYWdlLg0KKyAqLw0KK3Vuc2lnbmVkIGxvbmcNCitnZXRf
Y2FjaGVkX3BhZ2Uoc3RydWN0IGlub2RlICogaW5vZGUsIHVuc2lnbmVkIGxv
bmcgb2Zmc2V0LCBpbnQgbmV3KQ0KK3sNCisJc3RydWN0IHBhZ2UgKiBwYWdl
Ow0KKwlzdHJ1Y3QgcGFnZSAqKiBoYXNoOw0KKwl1bnNpZ25lZCBsb25nIG5l
d19wYWdlOw0KKw0KKyBhZ2FpbjoNCisJaGFzaCA9IHBhZ2VfaGFzaChpbm9k
ZSwgb2Zmc2V0KTsNCisJcGFnZSA9IF9fZmluZF9sb2NrX3BhZ2UoaW5vZGUs
IG9mZnNldCwgaGFzaCk7DQorCWlmKCFwYWdlICYmIG5ldykgew0KKwkJLyog
bm90IGluIGNhY2hlLCBhbGxvYyBhIG5ldyBwYWdlICovDQorCQluZXdfcGFn
ZSA9IHBhZ2VfY2FjaGVfYWxsb2MoKTsNCisJCWlmICghbmV3X3BhZ2UpDQor
CQkJcmV0dXJuIDA7DQorCQljbGVhcl9wYWdlKG5ld19wYWdlKTsJLyogc21i
IGNvZGUgYXNzdW1lcyBwYWdlcyBhcmUgemVyb2VkICovDQorCQlwYWdlID0g
cGFnZV9jYWNoZV9lbnRyeShuZXdfcGFnZSk7DQorCQlpZiAoYWRkX3RvX3Bh
Z2VfY2FjaGVfdW5pcXVlKHBhZ2UsIGlub2RlLCBvZmZzZXQsIGhhc2gpKSB7
DQorCQkJLyogSG1tLCBhIHBhZ2UgaGFzIG1hdGVyaWFsaXplZCBpbiB0aGUN
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZS4gRmluZS4gR28g
YmFjayBhbmQgZ2V0IHRoYXQgcGFnZQ0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluc3RlYWQgLi4uIHRocm93aW5nIGF3YXkgdGhpcyBvbmUgZmly
c3QuICovDQorCQkJcHV0X2NhY2hlZF9wYWdlKCh1bnNpZ25lZCBsb25nKSBw
YWdlKTsNCisJCQlnb3RvIGFnYWluOw0KKwkJfQ0KKwl9DQorCWlmKCFwYWdl
KQ0KKwkJcmV0dXJuIDA7DQorCWlmKCFQYWdlTG9ja2VkKHBhZ2UpKQ0KKwkJ
cHJpbnRrKEtFUk5fRVJSICJzbWJmcy9jYWNoZS5jOiBwYWdlIGlzbid0IGxv
Y2tlZCEgVGhpcyBjb3VsZCBiZSBmdW4gLi4uXG4iKTsNCisJcmV0dXJuIHBh
Z2VfYWRkcmVzcyhwYWdlKTsNCit9DQorDQogc3RhdGljIGlubGluZSBzdHJ1
Y3QgaW5vZGUgKiANCiBnZXRfY2FjaGVfaW5vZGUoc3RydWN0IGNhY2hlX2hl
YWQgKmNhY2hlcCkNCiB7DQpAQCAtMzgsOCArOTMsOCBAQA0KIAlzdHJ1Y3Qg
Y2FjaGVfaGVhZCAqIGNhY2hlcDsNCiANCiAjaWZkZWYgU01CRlNfREVCVUdf
VkVSQk9TRQ0KLXByaW50aygic21iX2dldF9kaXJjYWNoZTogZmluZGluZyBj
YWNoZSBmb3IgJXMvJXNcbiIsDQotZGVudHJ5LT5kX3BhcmVudC0+ZF9uYW1l
Lm5hbWUsIGRlbnRyeS0+ZF9uYW1lLm5hbWUpOw0KKwlwcmludGsoInNtYl9n
ZXRfZGlyY2FjaGU6IGZpbmRpbmcgY2FjaGUgZm9yICVzLyVzXG4iLA0KKwkg
ICAgICAgZGVudHJ5LT5kX3BhcmVudC0+ZF9uYW1lLm5hbWUsIGRlbnRyeS0+
ZF9uYW1lLm5hbWUpOw0KICNlbmRpZg0KIAljYWNoZXAgPSAoc3RydWN0IGNh
Y2hlX2hlYWQgKikgZ2V0X2NhY2hlZF9wYWdlKGlub2RlLCAwLCAxKTsNCiAJ
aWYgKCFjYWNoZXApDQpAQCAtMTQwLDggKzE5NSwxMCBAQA0KIAl1bnNpZ25l
ZCBpbnQgbmVlZGVkID0gbGVuICsgc2l6ZW9mKHN0cnVjdCBjYWNoZV9lbnRy
eSk7DQogDQogI2lmZGVmIFNNQkZTX0RFQlVHX1ZFUkJPU0UNCi1wcmludGso
InNtYl9hZGRfdG9fY2FjaGU6IGNhY2hlIGlub2RlICVwLCBzdGF0dXMgJWQs
IGFkZGluZyAlcyBhdCAlbGRcbiIsDQotaW5vZGUsIGNhY2hlcC0+c3RhdHVz
LCBlbnRyeS0+bmFtZSwgZnBvcyk7DQorcHJpbnRrKCJzbWJfYWRkX3RvX2Nh
Y2hlOiBjYWNoZSBpbm9kZSAlcCwgc3RhdHVzICVkLCBhZGRpbmcgIiwgDQor
ICAgICAgIGlub2RlLCBjYWNoZXAtPnN0YXR1cyk7DQorcHJpbnRrX25hbWUo
ZW50cnktPm5hbWUsIGVudHJ5LT5sZW4pOw0KK3ByaW50aygiIGF0ICVsZFxu
IiwgZnBvcyk7DQogI2VuZGlmDQogCS8qDQogCSAqIERvbid0IGRvIGFueXRo
aW5nIGlmIHdlJ3ZlIGhhZCBhbiBlcnJvciAuLi4NCkBAIC0xNjksOCArMjI2
LDEwIEBADQogCQlibG9jay0+Y2JfZGF0YS50YWJsZVtuZW50XS5pbm8gPSBl
bnRyeS0+aW5vOw0KIAkJY2FjaGVwLT5lbnRyaWVzKys7DQogI2lmZGVmIFNN
QkZTX0RFQlVHX1ZFUkJPU0UNCi1wcmludGsoInNtYl9hZGRfdG9fY2FjaGU6
IGFkZGVkIGVudHJ5ICVzLCBsZW49JWQsIHBvcz0lbGQsIGVudHJpZXM9JWRc
biIsDQotZW50cnktPm5hbWUsIGxlbiwgZnBvcywgY2FjaGVwLT5lbnRyaWVz
KTsNCitwcmludGsoInNtYl9hZGRfdG9fY2FjaGU6IGFkZGVkIGVudHJ5ICIp
Ow0KK3ByaW50a19uYW1lKGVudHJ5LT5uYW1lLCBlbnRyeS0+bGVuKTsNCitw
cmludGsoIiwgbGVuPSVkLCBwb3M9JWxkLCBlbnRyaWVzPSVkXG4iLA0KK2xl
biwgZnBvcywgY2FjaGVwLT5lbnRyaWVzKTsNCiAjZW5kaWYNCiAJCXJldHVy
bjsNCiAJfQ0KQEAgLTIzMSw3ICsyOTAsNyBAQA0KIAkJbmVudCA9IHBvcyAt
IG5leHRfcG9zOw0KIAkJbmV4dF9wb3MgKz0gaW5kZXgtPm51bV9lbnRyaWVz
Ow0KIAkJaWYgKHBvcyA+PSBuZXh0X3BvcykNCi0JCQljb250aW51ZTsgDQor
CQkJY29udGludWU7DQogCQkvKg0KIAkJICogVGhlIGVudHJ5IGlzIGluIHRo
aXMgYmxvY2suIE5vdGU6IHdlIHJldHVybg0KIAkJICogdGhlbiBuYW1lIGFz
IGEgcmVmZXJlbmNlIHdpdGggX25vXyBudWxsIGJ5dGUuDQpAQCAtMjQyLDgg
KzMwMSw5IEBADQogCQlvZmZzZXQgPSBibG9jay0+Y2JfZGF0YS50YWJsZVtu
ZW50XS5vZmZzZXQ7DQogCQllbnRyeS0+bmFtZSA9ICZibG9jay0+Y2JfZGF0
YS5uYW1lc1tvZmZzZXRdOw0KICNpZmRlZiBTTUJGU19ERUJVR19WRVJCT1NF
DQotcHJpbnRrKCJzbWJfZmluZF9pbl9jYWNoZTogZm91bmQgJXMsIGxlbj0l
ZCwgcG9zPSVsZFxuIiwNCi1lbnRyeS0+bmFtZSwgZW50cnktPmxlbiwgcG9z
KTsNCitwcmludGsoInNtYl9maW5kX2luX2NhY2hlOiBmb3VuZCAiKTsNCitw
cmludGtfbmFtZShlbnRyeS0+bmFtZSwgZW50cnktPmxlbik7DQorcHJpbnRr
KCIsIGxlbj0lZCwgcG9zPSVsZFxuIiwgZW50cnktPmxlbiwgcG9zKTsNCiAj
ZW5kaWYNCiAJCWJyZWFrOw0KIAl9DQpAQCAtMzEyLDQgKzM3MiwzIEBADQog
CWRpci0+dS5zbWJmc19pLmNhY2hlX3ZhbGlkICY9IH5TTUJfRl9DQUNIRVZB
TElEOw0KIAlkaXItPnUuc21iZnNfaS5vbGRtdGltZSA9IDA7DQogfQ0KLQ0K
ZGlmZiAtdXIgbGludXgub3JpZy9mcy9zbWJmcy9maWxlLmMgbGludXgvZnMv
c21iZnMvZmlsZS5jDQotLS0gbGludXgub3JpZy9mcy9zbWJmcy9maWxlLmMJ
U3VuIEp1biAyNyAxOToxMDo0MSAxOTk5DQorKysgbGludXgvZnMvc21iZnMv
ZmlsZS5jCU1vbiBTZXAgMjAgMjA6MzA6MjggMTk5OQ0KQEAgLTMyLDEzICsz
Miw2IEBADQogCXJldHVybiBhIDwgYiA/IGEgOiBiOw0KIH0NCiANCi1zdGF0
aWMgaW5saW5lIHZvaWQNCi1zbWJfdW5sb2NrX3BhZ2Uoc3RydWN0IHBhZ2Ug
KnBhZ2UpDQotew0KLQljbGVhcl9iaXQoUEdfbG9ja2VkLCAmcGFnZS0+Zmxh
Z3MpOw0KLQl3YWtlX3VwKCZwYWdlLT53YWl0KTsNCi19DQotDQogc3RhdGlj
IGludA0KIHNtYl9mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRl
bnRyeSAqIGRlbnRyeSkNCiB7DQpAQCAtNjEsNyArNTQsOSBAQA0KIAlpbnQg
Y291bnQgPSBQQUdFX1NJWkU7DQogCWludCByZXN1bHQ7DQogDQotCWNsZWFy
X2JpdChQR19lcnJvciwgJnBhZ2UtPmZsYWdzKTsNCisJLyogV2UgY2FuJ3Qg
cmVwbGFjZSB0aGlzIHdpdGggQ2xlYXJQYWdlRXJyb3IuIHdoeT8gaXMgaXQg
YSBwcm9ibGVtPyANCisJICAgZnMvYnVmZmVyLmM6YnJ3X3BhZ2UgZG9lcyB0
aGUgc2FtZS4gKi8NCisJLyogY2xlYXJfYml0KFBHX2Vycm9yLCAmcGFnZS0+
ZmxhZ3MpOyAqLw0KIA0KICNpZmRlZiBTTUJGU19ERUJVR19WRVJCT1NFDQog
cHJpbnRrKCJzbWJfcmVhZHBhZ2Vfc3luYzogZmlsZSAlcy8lcywgY291bnQ9
JWRAJWxkLCByc2l6ZT0lZFxuIiwNCkBAIC05NCwxMSArODksMTEgQEANCiAJ
fSB3aGlsZSAoY291bnQpOw0KIA0KIAltZW1zZXQoYnVmZmVyLCAwLCBjb3Vu
dCk7DQotCXNldF9iaXQoUEdfdXB0b2RhdGUsICZwYWdlLT5mbGFncyk7DQor
CVNldFBhZ2VVcHRvZGF0ZShwYWdlKTsNCiAJcmVzdWx0ID0gMDsNCiANCiBp
b19lcnJvcjoNCi0Jc21iX3VubG9ja19wYWdlKHBhZ2UpOw0KKwlVbmxvY2tQ
YWdlKHBhZ2UpOw0KIAlyZXR1cm4gcmVzdWx0Ow0KIH0NCiANCkBAIC0xMTAs
MTMgKzEwNSwxMyBAQA0KIA0KIAlwcl9kZWJ1ZygiU01COiBzbWJfcmVhZHBh
Z2UgJTA4bHhcbiIsIHBhZ2VfYWRkcmVzcyhwYWdlKSk7DQogI2lmZGVmIFNN
QkZTX1BBUkFOT0lBDQotCWlmICh0ZXN0X2JpdChQR19sb2NrZWQsICZwYWdl
LT5mbGFncykpDQotCQlwcmludGsoInNtYl9yZWFkcGFnZTogcGFnZSBhbHJl
YWR5IGxvY2tlZCFcbiIpOw0KKwlpZiAoIVBhZ2VMb2NrZWQocGFnZSkpDQor
CQlwcmludGsoInNtYl9yZWFkcGFnZTogcGFnZSBub3QgYWxyZWFkeSBsb2Nr
ZWQhXG4iKTsNCiAjZW5kaWYNCi0Jc2V0X2JpdChQR19sb2NrZWQsICZwYWdl
LT5mbGFncyk7DQotCWF0b21pY19pbmMoJnBhZ2UtPmNvdW50KTsNCisNCisJ
Z2V0X3BhZ2UocGFnZSk7DQogCWVycm9yID0gc21iX3JlYWRwYWdlX3N5bmMo
ZGVudHJ5LCBwYWdlKTsNCi0JZnJlZV9wYWdlKHBhZ2VfYWRkcmVzcyhwYWdl
KSk7DQorCXB1dF9wYWdlKHBhZ2UpOw0KIAlyZXR1cm4gZXJyb3I7DQogfQ0K
IA0KQEAgLTE2OSw2ICsxNjQsOCBAQA0KIC8qDQogICogV3JpdGUgYSBwYWdl
IHRvIHRoZSBzZXJ2ZXIuIFRoaXMgd2lsbCBiZSB1c2VkIGZvciBORlMgc3dh
cHBpbmcgb25seQ0KICAqIChmb3Igbm93KSwgYW5kIHdlIGN1cnJlbnRseSBk
byB0aGlzIHN5bmNocm9ub3VzbHkgb25seS4NCisgKg0KKyAqIFdlIGFyZSBj
YWxsZWQgd2l0aCB0aGUgcGFnZSBsb2NrZWQgYW5kIHRoZSBjYWxsZXIgdW5s
b2Nrcy4NCiAgKi8NCiBzdGF0aWMgaW50DQogc21iX3dyaXRlcGFnZShzdHJ1
Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UpDQpAQCAtMTc3LDE0
ICsxNzQsMTMgQEANCiAJaW50IAlyZXN1bHQ7DQogDQogI2lmZGVmIFNNQkZT
X1BBUkFOT0lBDQotCWlmICh0ZXN0X2JpdChQR19sb2NrZWQsICZwYWdlLT5m
bGFncykpDQotCQlwcmludGsoInNtYl93cml0ZXBhZ2U6IHBhZ2UgYWxyZWFk
eSBsb2NrZWQhXG4iKTsNCisJaWYgKCFQYWdlTG9ja2VkKHBhZ2UpKQ0KKwkJ
cHJpbnRrKCJzbWJfd3JpdGVwYWdlOiBwYWdlIG5vdCBhbHJlYWR5IGxvY2tl
ZCFcbiIpOw0KICNlbmRpZg0KLQlzZXRfYml0KFBHX2xvY2tlZCwgJnBhZ2Ut
PmZsYWdzKTsNCi0JYXRvbWljX2luYygmcGFnZS0+Y291bnQpOw0KKwlnZXRf
cGFnZShwYWdlKTsNCiAJcmVzdWx0ID0gc21iX3dyaXRlcGFnZV9zeW5jKGRl
bnRyeSwgcGFnZSwgMCwgUEFHRV9TSVpFKTsNCi0Jc21iX3VubG9ja19wYWdl
KHBhZ2UpOw0KLQlmcmVlX3BhZ2UocGFnZV9hZGRyZXNzKHBhZ2UpKTsNCisJ
U2V0UGFnZVVwdG9kYXRlKHBhZ2UpOw0KKwlwdXRfcGFnZShwYWdlKTsNCiAJ
cmV0dXJuIHJlc3VsdDsNCiB9DQogDQpAQCAtMjY2LDkgKzI2Miw5IEBADQog
ICogSWYgdGhlIHdyaXRlciBlbmRzIHVwIGRlbGF5aW5nIHRoZSB3cml0ZSwg
dGhlIHdyaXRlciBuZWVkcyB0bw0KICAqIGluY3JlbWVudCB0aGUgcGFnZSB1
c2UgY291bnRzIHVudGlsIGhlIGlzIGRvbmUgd2l0aCB0aGUgcGFnZS4NCiAg
Ki8NCi1zdGF0aWMgbG9uZyBzbWJfd3JpdGVfb25lX3BhZ2Uoc3RydWN0IGZp
bGUgKmZpbGUsIHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIG9m
ZnNldCwgdW5zaWduZWQgbG9uZyBieXRlcywgY29uc3QgY2hhciAqIGJ1ZikN
CitzdGF0aWMgaW50IHNtYl93cml0ZV9vbmVfcGFnZShzdHJ1Y3QgZmlsZSAq
ZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0
LCB1bnNpZ25lZCBsb25nIGJ5dGVzLCBjb25zdCBjaGFyICogYnVmKQ0KIHsN
Ci0JbG9uZyBzdGF0dXM7DQorCWludCBzdGF0dXM7DQogDQogCWJ5dGVzIC09
IGNvcHlfZnJvbV91c2VyKCh1OCopcGFnZV9hZGRyZXNzKHBhZ2UpICsgb2Zm
c2V0LCBidWYsIGJ5dGVzKTsNCiAJc3RhdHVzID0gLUVGQVVMVDsNCg==
---1463780587-1567069623-937938067=:1056--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/