Subject: Re: mkdir with trailing / (patch proposed)
To: Bill Sommerfeld <sommerfeld@netbsd.org>
From: Bill Studenmund <wrstuden@netbsd.org>
List: tech-kern
Date: 04/29/2002 13:26:56
  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.

--0-1269453694-1020112016=:29181
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Sun, 28 Apr 2002, Bill Sommerfeld wrote:

> A more correct way to do this would involve the introduction of a new
> namei operational flag, passing that from mkdir(), and if that flag is
> set, trimming the trailing slashes off the pathname early in namei().

Or not worry about trailing slashes on the last component if we have said
flag set.

The attached patch adds a new flag, NOREQLAST, which means to not
REQUIREDIR on the last path component. When this is set, the last
component not existing won't generate an error on lookup.

I made a test version of mkdir which didn't remove trailing slashes, and
mkdir worked.

Take care,

Bill

--0-1269453694-1020112016=:29181
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="mkdir.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.NEB.4.33.0204291326560.29181@vespasia.home-net.internetconnect.net>
Content-Description: 
Content-Disposition: attachment; filename="mkdir.patch"

SW5kZXg6IGtlcm4vdmZzX2xvb2t1cC5jDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQpSQ1MgZmlsZTogL2N2c3Jvb3Qvc3lzc3JjL3N5cy9rZXJuL3Zmc19s
b29rdXAuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzkNCmRpZmYgLXUg
LXIxLjM5IHZmc19sb29rdXAuYw0KLS0tIGtlcm4vdmZzX2xvb2t1cC5jCTIw
MDEvMTIvMDggMDQ6MDk6NTkJMS4zOQ0KKysrIGtlcm4vdmZzX2xvb2t1cC5j
CTIwMDIvMDQvMjkgMTc6NDc6NTYNCkBAIC00OTMsOCArNDkzLDEzIEBADQog
CQkvKg0KIAkJICogSWYgdGhpcyB3YXMgbm90IHRoZSBsYXN0IGNvbXBvbmVu
dCwgb3IgdGhlcmUgd2VyZSB0cmFpbGluZw0KIAkJICogc2xhc2hlcywgdGhl
biB0aGUgbmFtZSBtdXN0IGV4aXN0Lg0KKwkJICoNCisJCSAqIFVubGVzcyB3
ZSBhcmUgb24gdGhlIGxhc3QgY29tcG9uZW50IGFuZCBOT1JFUUxBU1QsIGlu
IHdoaWNoDQorCQkgKiBjYXNlIGFsbCBpcyBmaW5lLg0KIAkJICovDQotCQlp
ZiAoY25wLT5jbl9mbGFncyAmIFJFUVVJUkVESVIpIHsNCisJCWlmICgoY25w
LT5jbl9mbGFncyAmIFJFUVVJUkVESVIpICYmDQorCQkgICAgKChjbnAtPmNu
X2ZsYWdzICYgTk9SRVFMQVNUKSA9PSAwIHx8DQorCQkgICAgKGNucC0+Y25f
ZmxhZ3MgJiYgSVNMQVNUQ04pID09IDApKSB7DQogCQkJZXJyb3IgPSBFTk9F
TlQ7DQogCQkJZ290byBiYWQ7DQogCQl9DQpJbmRleDoga2Vybi92ZnNfc3lz
Y2FsbHMuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9j
dnNyb290L3N5c3NyYy9zeXMva2Vybi92ZnNfc3lzY2FsbHMuYyx2DQpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMTczDQpkaWZmIC11IC1yMS4xNzMgdmZzX3N5
c2NhbGxzLmMNCi0tLSBrZXJuL3Zmc19zeXNjYWxscy5jCTIwMDEvMTEvMTIg
MTU6MjU6NDEJMS4xNzMNCisrKyBrZXJuL3Zmc19zeXNjYWxscy5jCTIwMDIv
MDQvMjkgMTc6NDc6NTcNCkBAIC0yOTEzLDcgKzI5MTMsOCBAQA0KIAlpbnQg
ZXJyb3I7DQogCXN0cnVjdCBuYW1laWRhdGEgbmQ7DQogDQotCU5ESU5JVCgm
bmQsIENSRUFURSwgTE9DS1BBUkVOVCwgVUlPX1VTRVJTUEFDRSwgU0NBUkco
dWFwLCBwYXRoKSwgcCk7DQorCU5ESU5JVCgmbmQsIENSRUFURSwgTE9DS1BB
UkVOVCB8IE5PUkVRTEFTVCwgVUlPX1VTRVJTUEFDRSwNCisJICAgIFNDQVJH
KHVhcCwgcGF0aCksIHApOw0KIAlpZiAoKGVycm9yID0gbmFtZWkoJm5kKSkg
IT0gMCkNCiAJCXJldHVybiAoZXJyb3IpOw0KIAl2cCA9IG5kLm5pX3ZwOw0K
SW5kZXg6IHN5cy9uYW1laS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS
Q1MgZmlsZTogL2N2c3Jvb3Qvc3lzc3JjL3N5cy9zeXMvbmFtZWkuaCx2DQpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMjUNCmRpZmYgLXUgLXIxLjI1IG5hbWVp
LmgNCi0tLSBzeXMvbmFtZWkuaAkyMDAxLzEyLzA4IDA0OjEwOjAwCTEuMjUN
CisrKyBzeXMvbmFtZWkuaAkyMDAyLzA0LzI5IDE3OjQ3OjU3DQpAQCAtMTEx
LDYgKzExMSw3IEBADQogI2RlZmluZQlOT0NBQ0hFCQkweDAwMjAJLyogbmFt
ZSBtdXN0IG5vdCBiZSBsZWZ0IGluIGNhY2hlICovDQogI2RlZmluZQlGT0xM
T1cJCTB4MDA0MAkvKiBmb2xsb3cgc3ltYm9saWMgbGlua3MgKi8NCiAjZGVm
aW5lCU5PRk9MTE9XCTB4MDAwMAkvKiBkbyBub3QgZm9sbG93IHN5bWJvbGlj
IGxpbmtzIChwc2V1ZG8pICovDQorI2RlZmluZQlOT1JFUUxBU1QJMHgwMDgw
CS8qIGRvIG5vdCBSRVFVSVJFRElSIGxhc3QgY29tcG9uZW50ICovDQogI2Rl
ZmluZQlNT0RNQVNLCQkweDAwZmMJLyogbWFzayBvZiBvcGVyYXRpb25hbCBt
b2RpZmllcnMgKi8NCiAvKg0KICAqIE5hbWVpIHBhcmFtZXRlciBkZXNjcmlw
dG9ycy4NCg==
--0-1269453694-1020112016=:29181--