Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Feb 2011 10:58:42 -0700
From:      Shawn Webb <lattera@gmail.com>
To:        FreeBSD-current <freebsd-current@freebsd.org>
Subject:   setfacl Recursive Functionality
Message-ID:  <AANLkTi=%2BWtmRz07m=Cg7hbXJGw7eWRHC1ASGeufTSLBB@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--0016364592f0535008049bc919ee
Content-Type: text/plain; charset=ISO-8859-1

I've just finished a patch to add recursive functionality to setfacl. Before
I officially submit it, I'd like a few suggestions on how to improve the
patch.

The part I'm worried about involves the #define directive at top. I'm not
sure what ramifications using that define might have. I needed it for my
remove_invalid_inherit() function to work.

Thanks,

Shawn

attached: setfacl.patch (universal diff)

--0016364592f0535008049bc919ee
Content-Type: application/octet-stream; name="setfacl.patch"
Content-Disposition: attachment; filename="setfacl.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gjx436vo0

LS0tIC91c3Ivc3JjL2Jpbi9zZXRmYWNsL3NldGZhY2wuYwkyMDExLTAyLTAzIDEyOjExOjAyLjMw
MzQ5NjMxOCAtMDcwMAorKysgL3RhbmsvamFpbHMvZGV2L3Vzci9zcmMvYmluL3NldGZhY2wvc2V0
ZmFjbC5jCTIwMTEtMDItMDggMTA6NDc6MTguMTkwOTM2NDg5IC0wNzAwCkBAIC0yMyw3ICsyMyw3
IEBACiAgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQogICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KLQorI2RlZmluZSBfQUNMX1BSSVZBVEUKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KIF9f
RkJTRElEKCIkRnJlZUJTRCQiKTsKIApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHN5cy9z
dGF0Lmg+CiAjaW5jbHVkZSA8c3lzL2FjbC5oPgogI2luY2x1ZGUgPHN5cy9xdWV1ZS5oPgorI2lu
Y2x1ZGUgPGRpcmVudC5oPgogCiAjaW5jbHVkZSA8ZXJyLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4K
QEAgLTQ0LDYgKzQ1LDggQEAKIAogc3RhdGljIHZvaWQJYWRkX2ZpbGVuYW1lKGNvbnN0IGNoYXIg
KmZpbGVuYW1lKTsKIHN0YXRpYyB2b2lkCXVzYWdlKHZvaWQpOworc3RhdGljIHZvaWQJcmVjdXJz
ZV9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGlybmFtZSwgaW50IHJfZmxhZyk7CitzdGF0aWMgYWNs
X3QJcmVtb3ZlX2ludmFsaWRfaW5oZXJpdChzdHJ1Y3Qgc3RhdCAqc2IsIGFjbF90IGFjbCk7CiAK
IHN0YXRpYyB2b2lkCiBhZGRfZmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5hbWUpCkBAIC02Mywx
OSArNjYsODMgQEAKIHVzYWdlKHZvaWQpCiB7CiAKLQlmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiBz
ZXRmYWNsIFstYmRoa25dIFstYSBwb3NpdGlvbiBlbnRyaWVzXSAiCisJZnByaW50ZihzdGRlcnIs
ICJ1c2FnZTogc2V0ZmFjbCBbLWJkaGtuUl0gWy1hIHBvc2l0aW9uIGVudHJpZXNdICIKIAkgICAg
IlstbSBlbnRyaWVzXSBbLU0gZmlsZV0gWy14IGVudHJpZXNdIFstWCBmaWxlXSBbZmlsZSAuLi5d
XG4iKTsKIAlleGl0KDEpOwogfQogCitzdGF0aWMgdm9pZAorcmVjdXJzZV9kaXJlY3RvcnkoY29u
c3QgY2hhciAqZGlybmFtZSwgaW50IHJfZmxhZykKK3sKKwlESVIgKmRpcnA7CisJc3RydWN0IGRp
cmVudCAqZW50OworCXN0cnVjdCBzdGF0IHNiOworCWNoYXIgbmV3cGF0aFtQQVRIX01BWCsxXTsK
KwkKKwlpZiAoc3RhdChkaXJuYW1lLCAmc2IpID09IC0xKSB7CisJCXdhcm4oIiVzOiBzdGF0KCkg
ZmFpbGVkIiwgZGlybmFtZSk7CisJCXJldHVybjsKKwl9CisJCisJYWRkX2ZpbGVuYW1lKGRpcm5h
bWUpOworCQorCWlmIChyX2ZsYWcgPT0gMCB8fCBTX0lTRElSKHNiLnN0X21vZGUpID09IDApCisJ
CXJldHVybjsKKwkKKwlkaXJwID0gb3BlbmRpcihkaXJuYW1lKTsKKwl3aGlsZSAoKGVudCA9IHJl
YWRkaXIoZGlycCkpICE9IE5VTEwpIHsKKwkJaWYgKHN0cmNtcChlbnQtPmRfbmFtZSwgIi4iKSA9
PSAwIHx8IHN0cmNtcChlbnQtPmRfbmFtZSwgIi4uIikgPT0gMCkKKwkJCWNvbnRpbnVlOworCQkK
KwkJc25wcmludGYobmV3cGF0aCwgUEFUSF9NQVgsICIlcy8lcyIsIGRpcm5hbWUsIGVudC0+ZF9u
YW1lKTsgCisJCQorCQlpZiAoc3RhdChuZXdwYXRoLCAmc2IpID09IC0xKSB7CisJCQl3YXJuKCIl
czogc3RhdCgpIGZhaWxlZCIsIG5ld3BhdGgpOworCQkJY29udGludWU7CisJCX0KKwkJCisJCWlm
IChTX0lTRElSKHNiLnN0X21vZGUpKQorCQkJcmVjdXJzZV9kaXJlY3RvcnkobmV3cGF0aCwgcl9m
bGFnKTsKKwkJCisJCWFkZF9maWxlbmFtZShzdHJkdXAobmV3cGF0aCkpOworCX0KKwljbG9zZWRp
cihkaXJwKTsKK30KKworc3RhdGljIGFjbF90CityZW1vdmVfaW52YWxpZF9pbmhlcml0KHN0cnVj
dCBzdGF0ICpzYiwgYWNsX3QgYWNsKQoreworCWFjbF90IGFjbF9uZXc7CisJaW50IGFjbF9icmFu
ZDsKKwlhY2xfZW50cnlfdCBlbnRyeTsKKwlpbnQgZW50cnlfaWQ7CisJCisJYWNsX2dldF9icmFu
ZF9ucChhY2wsICZhY2xfYnJhbmQpOworCWlmIChhY2xfYnJhbmQgIT0gQUNMX0JSQU5EX05GUzQp
CisJCXJldHVybiBhY2w7CisJCisJaWYgKFNfSVNESVIoc2ItPnN0X21vZGUpICE9IDApCisJCXJl
dHVybiBhY2w7CisJCisJYWNsX25ldyA9IGFjbF9kdXAoYWNsKTsKKwkKKwllbnRyeV9pZCA9IEFD
TF9GSVJTVF9FTlRSWTsKKwl3aGlsZSAoYWNsX2dldF9lbnRyeShhY2xfbmV3LCBlbnRyeV9pZCwg
JmVudHJ5KSA9PSAxKSB7CisJCWVudHJ5X2lkID0gQUNMX05FWFRfRU5UUlk7CisJCWVudHJ5LT5h
ZV9mbGFncyA9IDA7CisJfQorCQorCXJldHVybiBhY2xfbmV3OworfQorCiBpbnQKIG1haW4oaW50
IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLQlhY2xfdCBhY2w7CisJYWNsX3QgYWNsLCBhY2xfYmFj
a3VwOwogCWFjbF90eXBlX3QgYWNsX3R5cGU7CiAJY2hhciBmaWxlbmFtZVtQQVRIX01BWF07CiAJ
aW50IGxvY2FsX2Vycm9yLCBjYXJyaWVkX2Vycm9yLCBjaCwgaSwgZW50cnlfbnVtYmVyLCByZXQ7
Ci0JaW50IGhfZmxhZzsKKwlpbnQgaF9mbGFnLCByX2ZsYWc7CiAJc3RydWN0IHNmX2ZpbGUgKmZp
bGU7CiAJc3RydWN0IHNmX2VudHJ5ICplbnRyeTsKIAljb25zdCBjaGFyICpmbl9kdXA7CkBAIC04
NCwxMiArMTUxLDEyIEBACiAKIAlhY2xfdHlwZSA9IEFDTF9UWVBFX0FDQ0VTUzsKIAljYXJyaWVk
X2Vycm9yID0gbG9jYWxfZXJyb3IgPSAwOwotCWhfZmxhZyA9IGhhdmVfbWFzayA9IGhhdmVfc3Rk
aW4gPSBuX2ZsYWcgPSBuZWVkX21hc2sgPSAwOworCWhfZmxhZyA9IGhhdmVfbWFzayA9IGhhdmVf
c3RkaW4gPSBuX2ZsYWcgPSBuZWVkX21hc2sgPSByX2ZsYWcgPSAwOwogCiAJVEFJTFFfSU5JVCgm
ZW50cnlsaXN0KTsKIAlUQUlMUV9JTklUKCZmaWxlbGlzdCk7CiAKLQl3aGlsZSAoKGNoID0gZ2V0
b3B0KGFyZ2MsIGFyZ3YsICJNOlg6YTpiZGhrbTpueDoiKSkgIT0gLTEpCisJd2hpbGUgKChjaCA9
IGdldG9wdChhcmdjLCBhcmd2LCAiUk06WDphOmJkaGttOm54OiIpKSAhPSAtMSkKIAkJc3dpdGNo
KGNoKSB7CiAJCWNhc2UgJ00nOgogCQkJZW50cnkgPSB6bWFsbG9jKHNpemVvZihzdHJ1Y3Qgc2Zf
ZW50cnkpKTsKQEAgLTE2Nyw2ICsyMzQsOSBAQAogCQkJfQogCQkJVEFJTFFfSU5TRVJUX1RBSUwo
JmVudHJ5bGlzdCwgZW50cnksIG5leHQpOwogCQkJYnJlYWs7CisJCWNhc2UgJ1InOgorCQkJcl9m
bGFnID0gMTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJdXNhZ2UoKTsKIAkJCWJyZWFrOwpA
QCAtMTkzLDcgKzI2Myw3IEBACiAJCX0KIAl9IGVsc2UKIAkJZm9yIChpID0gMDsgaSA8IGFyZ2M7
IGkrKykKLQkJCWFkZF9maWxlbmFtZShhcmd2W2ldKTsKKwkJCXJlY3Vyc2VfZGlyZWN0b3J5KGFy
Z3ZbaV0sIHJfZmxhZyk7CiAKIAkvKiBjeWNsZSB0aHJvdWdoIGVhY2ggZmlsZSAqLwogCVRBSUxR
X0ZPUkVBQ0goZmlsZSwgJmZpbGVsaXN0LCBuZXh0KSB7CkBAIC0yNTAsMTIgKzMyMCwyNCBAQAog
CiAJCQlzd2l0Y2goZW50cnktPm9wKSB7CiAJCQljYXNlIE9QX0FERF9BQ0w6CisJCQkJYWNsX2Jh
Y2t1cCA9IGVudHJ5LT5hY2w7CisJCQkJZW50cnktPmFjbCA9IHJlbW92ZV9pbnZhbGlkX2luaGVy
aXQoJnNiLCBlbnRyeS0+YWNsKTsKIAkJCQlsb2NhbF9lcnJvciArPSBhZGRfYWNsKGVudHJ5LT5h
Y2wsCiAJCQkJICAgIGVudHJ5LT5lbnRyeV9udW1iZXIsICZhY2wsIGZpbGUtPmZpbGVuYW1lKTsK
KwkJCQlpZiAoZW50cnktPmFjbCAhPSBhY2xfYmFja3VwKSB7CisJCQkJCWFjbF9mcmVlKGVudHJ5
LT5hY2wpOworCQkJCQllbnRyeS0+YWNsID0gYWNsX2JhY2t1cDsKKwkJCQl9CiAJCQkJYnJlYWs7
CiAJCQljYXNlIE9QX01FUkdFX0FDTDoKKwkJCQlhY2xfYmFja3VwID0gZW50cnktPmFjbDsKKwkJ
CQllbnRyeS0+YWNsID0gcmVtb3ZlX2ludmFsaWRfaW5oZXJpdCgmc2IsIGVudHJ5LT5hY2wpOwog
CQkJCWxvY2FsX2Vycm9yICs9IG1lcmdlX2FjbChlbnRyeS0+YWNsLCAmYWNsLAogCQkJCSAgICBm
aWxlLT5maWxlbmFtZSk7CisJCQkJaWYgKGVudHJ5LT5hY2wgIT0gYWNsX2JhY2t1cCkgeworCQkJ
CQlhY2xfZnJlZShlbnRyeS0+YWNsKTsKKwkJCQkJZW50cnktPmFjbCA9IGFjbF9iYWNrdXA7CisJ
CQkJfQogCQkJCW5lZWRfbWFzayA9IDE7CiAJCQkJYnJlYWs7CiAJCQljYXNlIE9QX1JFTU9WRV9F
WFQ6Cg==
--0016364592f0535008049bc919ee--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=%2BWtmRz07m=Cg7hbXJGw7eWRHC1ASGeufTSLBB>