Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Feb 2011 21:40:10 -0700
From:      Shawn Webb <lattera@gmail.com>
To:        FreeBSD-current <freebsd-current@freebsd.org>
Subject:   Re: setfacl Recursive Functionality
Message-ID:  <AANLkTik7D_uzL33M-ABZmM27NpfXrPsuCXvjo2fhE7Ky@mail.gmail.com>
In-Reply-To: <AANLkTi=%2BWtmRz07m=Cg7hbXJGw7eWRHC1ASGeufTSLBB@mail.gmail.com>
References:  <AANLkTi=%2BWtmRz07m=Cg7hbXJGw7eWRHC1ASGeufTSLBB@mail.gmail.com>

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

One last patch before I do a send-pr to send the patch upstream. This patch
depends on my ZFS ACL Sets patch for the -k flag. I wanted to zero-out the
ACL entries recursively for a directory, which I can do in Solaris with
"chmod -R A= /path/to/directory", but ZFS doesn't allow zero-number ACL
sets. To work around that, I'm giving owner@ full permissions (the full_set
ACL set).

I'll also include my ZFS ACL Sets patch. That has already been submitted
upstream and I'm awaiting approval.

Thanks,

Shawn

On Tue, Feb 8, 2011 at 10:58 AM, Shawn Webb <lattera@gmail.com> wrote:

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

--002215b02cc23db270049d646457
Content-Type: application/octet-stream; name="setfacl_recursive.patch"
Content-Disposition: attachment; filename="setfacl_recursive.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gkqbv5wr1

ZGlmZiAtLWdpdCBhL2Jpbi9zZXRmYWNsL3NldGZhY2wuYyBiL2Jpbi9zZXRmYWNsL3NldGZhY2wu
YwppbmRleCBhMGY5MzdjLi4yNTMyMTg4IDEwMDY0NAotLS0gYS9iaW4vc2V0ZmFjbC9zZXRmYWNs
LmMKKysrIGIvYmluL3NldGZhY2wvc2V0ZmFjbC5jCkBAIC0zMiw2ICszMiw4IEBAIF9fRkJTRElE
KCIkRnJlZUJTRCQiKTsKICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUgPHN5cy9hY2wu
aD4KICNpbmNsdWRlIDxzeXMvcXVldWUuaD4KKyNpbmNsdWRlIDxmdHMuaD4KKyNpbmNsdWRlIDxk
aXJlbnQuaD4KIAogI2luY2x1ZGUgPGVyci5oPgogI2luY2x1ZGUgPGVycm5vLmg+CkBAIC00NCw2
ICs0Niw4IEBAIF9fRkJTRElEKCIkRnJlZUJTRCQiKTsKIAogc3RhdGljIHZvaWQJYWRkX2ZpbGVu
YW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKIHN0YXRpYyB2b2lkCXVzYWdlKHZvaWQpOworc3Rh
dGljIHZvaWQJcmVjdXJzZV9kaXJlY3RvcnkoY2hhciAqY29uc3QgKnBhdGhzLCBpbnQgcl9mbGFn
LCBpbnQgbF9mbGFnLCBpbnQgYmlnX2hfZmxhZyk7CitzdGF0aWMgYWNsX3QJcmVtb3ZlX2ludmFs
aWRfaW5oZXJpdChjb25zdCBjaGFyICpwYXRoLCBhY2xfdCBhY2wsIGludCBsX2ZsYWcpOwogCiBz
dGF0aWMgdm9pZAogYWRkX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQpAQCAtNjIsMzQg
KzY2LDExMiBAQCBhZGRfZmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5hbWUpCiBzdGF0aWMgdm9p
ZAogdXNhZ2Uodm9pZCkKIHsKLQotCWZwcmludGYoc3RkZXJyLCAidXNhZ2U6IHNldGZhY2wgWy1i
ZGhrbl0gWy1hIHBvc2l0aW9uIGVudHJpZXNdICIKKwlmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiBz
ZXRmYWNsIFstYmRoa0xuUl0gWy1hIHBvc2l0aW9uIGVudHJpZXNdICIKIAkgICAgIlstbSBlbnRy
aWVzXSBbLU0gZmlsZV0gWy14IGVudHJpZXNdIFstWCBmaWxlXSBbZmlsZSAuLi5dXG4iKTsKIAll
eGl0KDEpOwogfQogCitzdGF0aWMgdm9pZAorcmVjdXJzZV9kaXJlY3RvcnkoY2hhciAqY29uc3Qg
KnBhdGhzLCBpbnQgcl9mbGFnLCBpbnQgbF9mbGFnLCBpbnQgYmlnX2hfZmxhZykKK3sKKwlGVFMg
KmZ0c3A7CisJRlRTRU5UICpwLCAqY2hwOworCWludCBmdHNfb3B0aW9ucyA9IEZUU19OT0NIRElS
OworCXVuc2lnbmVkIGludCBpOworCQorCWZ0c19vcHRpb25zIHw9IChsX2ZsYWcgPT0gMSkgPyBG
VFNfTE9HSUNBTCA6IEZUU19QSFlTSUNBTDsKKwlpZiAoYmlnX2hfZmxhZykKKwkJZnRzX29wdGlv
bnMgfD0gRlRTX0NPTUZPTExPVzsKKwkKKwlpZiAocl9mbGFnKQorCXsKKwkJZnRzcCA9IGZ0c19v
cGVuKHBhdGhzLCBmdHNfb3B0aW9ucywgTlVMTCk7CisJCWlmIChmdHNwID09IE5VTEwpCisJCQly
ZXR1cm47CisJCQorCQljaHAgPSBmdHNfY2hpbGRyZW4oZnRzcCwgMCk7CisJCWlmIChjaHAgPT0g
TlVMTCkKKwkJCXJldHVybjsKKwkJCisJCXdoaWxlICgocCA9IGZ0c19yZWFkKGZ0c3ApKSAhPSBO
VUxMKSB7CisJCQlpZiAobF9mbGFnID09IDAgJiYgcC0+ZnRzX2luZm8gJiBGVFNfRCkKKwkJCQlj
b250aW51ZTsKKwkJCWVsc2UgaWYgKGxfZmxhZyA9PSAxICYmIHAtPmZ0c19pbmZvICYgRlRTX0RQ
KQorCQkJCWNvbnRpbnVlOworCQkJCisJCQlhZGRfZmlsZW5hbWUoc3RyZHVwKHAtPmZ0c19wYXRo
KSk7CisJCX0KKwkJCisJCWZ0c19jbG9zZShmdHNwKTsKKwl9IGVsc2UKKwkJZm9yIChpID0gMDsg
cGF0aHNbaV0gIT0gTlVMTDsgaSsrKQorCQkJYWRkX2ZpbGVuYW1lKHBhdGhzW2ldKTsKK30KKwor
c3RhdGljIGFjbF90CityZW1vdmVfaW52YWxpZF9pbmhlcml0KGNvbnN0IGNoYXIgKnBhdGgsIGFj
bF90IGFjbCwgaW50IGxfZmxhZykKK3sKKwlhY2xfdCBhY2xfbmV3OworCWludCBhY2xfYnJhbmQ7
CisJYWNsX2VudHJ5X3QgZW50cnk7CisJaW50IGVudHJ5X2lkOworCWFjbF9mbGFnc2V0X3QgZmxh
Z3NldDsKKwlzdHJ1Y3Qgc3RhdCBzYjsKKwkKKwlhY2xfZ2V0X2JyYW5kX25wKGFjbCwgJmFjbF9i
cmFuZCk7CisJaWYgKGFjbF9icmFuZCAhPSBBQ0xfQlJBTkRfTkZTNCkKKwkJcmV0dXJuIGFjbDsK
KwkKKwlpZiAobF9mbGFnID09IDEpIHsKKwkJaWYgKHN0YXQocGF0aCwgJnNiKSA9PSAtMSkKKwkJ
CXJldHVybiBhY2w7CisJfSBlbHNlCisJCWlmIChsc3RhdChwYXRoLCAmc2IpID09IC0xKQorCQkJ
cmV0dXJuIGFjbDsKKwkKKwlpZiAoU19JU0RJUihzYi5zdF9tb2RlKSAhPSAwKQorCQlyZXR1cm4g
YWNsOworCQorCWFjbF9uZXcgPSBhY2xfZHVwKGFjbCk7CisJCisJZW50cnlfaWQgPSBBQ0xfRklS
U1RfRU5UUlk7CisJd2hpbGUgKGFjbF9nZXRfZW50cnkoYWNsX25ldywgZW50cnlfaWQsICZlbnRy
eSkgPT0gMSkgeworCQllbnRyeV9pZCA9IEFDTF9ORVhUX0VOVFJZOworCQlhY2xfZ2V0X2ZsYWdz
ZXRfbnAoZW50cnksICZmbGFnc2V0KTsKKwkJaWYgKGFjbF9nZXRfZmxhZ19ucChmbGFnc2V0LCBB
Q0xfRU5UUllfSU5IRVJJVF9PTkxZKSkgeworCQkJYWNsX2RlbGV0ZV9lbnRyeShhY2xfbmV3LCBl
bnRyeSk7CisJCQljb250aW51ZTsKKwkJfQorCQlhY2xfZGVsZXRlX2ZsYWdfbnAoZmxhZ3NldCwg
QUNMX0VOVFJZX0ZJTEVfSU5IRVJJVCB8IEFDTF9FTlRSWV9ESVJFQ1RPUllfSU5IRVJJVCB8IEFD
TF9FTlRSWV9OT19QUk9QQUdBVEVfSU5IRVJJVCk7CisJfQorCQorCXJldHVybiBhY2xfbmV3Owor
fQorCiBpbnQKIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKLQlhY2xfdCBhY2w7CisJ
YWNsX3QgYWNsLCBhY2xfYmFja3VwOwogCWFjbF90eXBlX3QgYWNsX3R5cGU7CiAJY2hhciBmaWxl
bmFtZVtQQVRIX01BWF07Ci0JaW50IGxvY2FsX2Vycm9yLCBjYXJyaWVkX2Vycm9yLCBjaCwgaSwg
ZW50cnlfbnVtYmVyLCByZXQ7Ci0JaW50IGhfZmxhZzsKKwlpbnQgbG9jYWxfZXJyb3IsIGNhcnJp
ZWRfZXJyb3IsIGNoLCBlbnRyeV9udW1iZXIsIHJldDsKKwlpbnQgaF9mbGFnLCByX2ZsYWcsIGxf
ZmxhZywgYmlnX2hfZmxhZzsKIAlzdHJ1Y3Qgc2ZfZmlsZSAqZmlsZTsKIAlzdHJ1Y3Qgc2ZfZW50
cnkgKmVudHJ5OwotCWNvbnN0IGNoYXIgKmZuX2R1cDsKKwljaGFyICpmbl9kdXA7CiAJY2hhciAq
ZW5kOworCWNoYXIgKipmaWxlcz1OVUxMOworCXVuc2lnbmVkIGludCBudW1maWxlcz0wOwogCXN0
cnVjdCBzdGF0IHNiOwogCiAJYWNsX3R5cGUgPSBBQ0xfVFlQRV9BQ0NFU1M7CiAJY2FycmllZF9l
cnJvciA9IGxvY2FsX2Vycm9yID0gMDsKLQloX2ZsYWcgPSBoYXZlX21hc2sgPSBoYXZlX3N0ZGlu
ID0gbl9mbGFnID0gbmVlZF9tYXNrID0gMDsKKwloX2ZsYWcgPSBoYXZlX21hc2sgPSBoYXZlX3N0
ZGluID0gbl9mbGFnID0gbmVlZF9tYXNrID0gcl9mbGFnID0gbF9mbGFnID0gYmlnX2hfZmxhZyA9
IDA7CiAKIAlUQUlMUV9JTklUKCZlbnRyeWxpc3QpOwogCVRBSUxRX0lOSVQoJmZpbGVsaXN0KTsK
IAotCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJnYywgYXJndiwgIk06WDphOmJkaGttOm54OiIpKSAh
PSAtMSkKKwl3aGlsZSAoKGNoID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJITFJNOlg6YTpiZGhrbTpu
eDoiKSkgIT0gLTEpCiAJCXN3aXRjaChjaCkgewogCQljYXNlICdNJzoKIAkJCWVudHJ5ID0gem1h
bGxvYyhzaXplb2Yoc3RydWN0IHNmX2VudHJ5KSk7CkBAIC0xNjcsNiArMjQ5LDE1IEBAIG1haW4o
aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCX0KIAkJCVRBSUxRX0lOU0VSVF9UQUlMKCZlbnRy
eWxpc3QsIGVudHJ5LCBuZXh0KTsKIAkJCWJyZWFrOworCQljYXNlICdSJzoKKwkJCXJfZmxhZyA9
IDE7CisJCQlicmVhazsKKwkJY2FzZSAnTCc6CisJCQlsX2ZsYWcgPSAxOworCQkJYnJlYWs7CisJ
CWNhc2UgJ0gnOgorCQkJYmlnX2hfZmxhZyA9IDE7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJ
CXVzYWdlKCk7CiAJCQlicmVhazsKQEAgLTE4OSwxMSArMjgwLDE4IEBAIG1haW4oaW50IGFyZ2Ms
IGNoYXIgKmFyZ3ZbXSkKIAkJCWZuX2R1cCA9IHN0cmR1cChmaWxlbmFtZSk7CiAJCQlpZiAoZm5f
ZHVwID09IE5VTEwpCiAJCQkJZXJyKDEsICJzdHJkdXAoKSBmYWlsZWQiKTsKLQkJCWFkZF9maWxl
bmFtZShmbl9kdXApOworCQkJZmlsZXMgPSByZWFsbG9jKGZpbGVzLCArK251bWZpbGVzICogc2l6
ZW9mKGNoYXIgKiopKTsKKwkJCWlmIChmaWxlcyA9PSBOVUxMKQorCQkJCWVycigxLCAicmVhbGxv
YygpIGZhaWxlZCIpOworCQkJZmlsZXNbbnVtZmlsZXMtMV0gPSAoY2hhciAqKWZuX2R1cDsKIAkJ
fQorCQkKKwkJZmlsZXMgPSByZWFsbG9jKGZpbGVzLCArK251bWZpbGVzICogc2l6ZW9mKGNoYXIg
KiopKTsKKwkJZmlsZXNbbnVtZmlsZXMtMV0gPSBOVUxMOwogCX0gZWxzZQotCQlmb3IgKGkgPSAw
OyBpIDwgYXJnYzsgaSsrKQotCQkJYWRkX2ZpbGVuYW1lKGFyZ3ZbaV0pOworCQlmaWxlcyA9IGFy
Z3Y7CisJCisJcmVjdXJzZV9kaXJlY3RvcnkoZmlsZXMsIHJfZmxhZywgbF9mbGFnLCBiaWdfaF9m
bGFnKTsKIAogCS8qIGN5Y2xlIHRocm91Z2ggZWFjaCBmaWxlICovCiAJVEFJTFFfRk9SRUFDSChm
aWxlLCAmZmlsZWxpc3QsIG5leHQpIHsKQEAgLTIwMSwxNCArMjk5LDEyIEBAIG1haW4oaW50IGFy
Z2MsIGNoYXIgKmFyZ3ZbXSkKIAogCQlpZiAoc3RhdChmaWxlLT5maWxlbmFtZSwgJnNiKSA9PSAt
MSkgewogCQkJd2FybigiJXM6IHN0YXQoKSBmYWlsZWQiLCBmaWxlLT5maWxlbmFtZSk7Ci0JCQlj
YXJyaWVkX2Vycm9yKys7CiAJCQljb250aW51ZTsKIAkJfQogCiAJCWlmIChhY2xfdHlwZSA9PSBB
Q0xfVFlQRV9ERUZBVUxUICYmIFNfSVNESVIoc2Iuc3RfbW9kZSkgPT0gMCkgewogCQkJd2Fybngo
IiVzOiBkZWZhdWx0IEFDTCBtYXkgb25seSBiZSBzZXQgb24gYSBkaXJlY3RvcnkiLAogCQkJICAg
IGZpbGUtPmZpbGVuYW1lKTsKLQkJCWNhcnJpZWRfZXJyb3IrKzsKIAkJCWNvbnRpbnVlOwogCQl9
CiAKQEAgLTIyMCw3ICszMTYsNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQlp
ZiAoYWNsX3R5cGUgPT0gQUNMX1RZUEVfREVGQVVMVCkgewogCQkJCXdhcm54KCIlczogdGhlcmUg
YXJlIG5vIGRlZmF1bHQgZW50cmllcyAiCiAJCQkgICAgICAgICAgICJpbiBORlN2NCBBQ0xzIiwg
ZmlsZS0+ZmlsZW5hbWUpOwotCQkJCWNhcnJpZWRfZXJyb3IrKzsKIAkJCQljb250aW51ZTsKIAkJ
CX0KIAkJCWFjbF90eXBlID0gQUNMX1RZUEVfTkZTNDsKQEAgLTI0Myw3ICszMzgsNiBAQCBtYWlu
KGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQllbHNlCiAJCQkJd2FybigiJXM6IGFjbF9nZXRf
ZmlsZSgpIGZhaWxlZCIsCiAJCQkJICAgIGZpbGUtPmZpbGVuYW1lKTsKLQkJCWNhcnJpZWRfZXJy
b3IrKzsKIAkJCWNvbnRpbnVlOwogCQl9CiAKQEAgLTI1NCwxMiArMzQ4LDI0IEBAIG1haW4oaW50
IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogCQkJc3dpdGNoKGVudHJ5LT5vcCkgewogCQkJY2FzZSBP
UF9BRERfQUNMOgorCQkJCWFjbF9iYWNrdXAgPSBlbnRyeS0+YWNsOworCQkJCWVudHJ5LT5hY2wg
PSByZW1vdmVfaW52YWxpZF9pbmhlcml0KGZpbGUtPmZpbGVuYW1lLCBlbnRyeS0+YWNsLCBsX2Zs
YWcpOwogCQkJCWxvY2FsX2Vycm9yICs9IGFkZF9hY2woZW50cnktPmFjbCwKIAkJCQkgICAgZW50
cnktPmVudHJ5X251bWJlciwgJmFjbCwgZmlsZS0+ZmlsZW5hbWUpOworCQkJCWlmIChlbnRyeS0+
YWNsICE9IGFjbF9iYWNrdXApIHsKKwkJCQkJYWNsX2ZyZWUoZW50cnktPmFjbCk7CisJCQkJCWVu
dHJ5LT5hY2wgPSBhY2xfYmFja3VwOworCQkJCX0KIAkJCQlicmVhazsKIAkJCWNhc2UgT1BfTUVS
R0VfQUNMOgorCQkJCWFjbF9iYWNrdXAgPSBlbnRyeS0+YWNsOworCQkJCWVudHJ5LT5hY2wgPSBy
ZW1vdmVfaW52YWxpZF9pbmhlcml0KGZpbGUtPmZpbGVuYW1lLCBlbnRyeS0+YWNsLCBsX2ZsYWcp
OwogCQkJCWxvY2FsX2Vycm9yICs9IG1lcmdlX2FjbChlbnRyeS0+YWNsLCAmYWNsLAogCQkJCSAg
ICBmaWxlLT5maWxlbmFtZSk7CisJCQkJaWYgKGVudHJ5LT5hY2wgIT0gYWNsX2JhY2t1cCkgewor
CQkJCQlhY2xfZnJlZShlbnRyeS0+YWNsKTsKKwkJCQkJZW50cnktPmFjbCA9IGFjbF9iYWNrdXA7
CisJCQkJfQogCQkJCW5lZWRfbWFzayA9IDE7CiAJCQkJYnJlYWs7CiAJCQljYXNlIE9QX1JFTU9W
RV9FWFQ6CkBAIC0yNjcsMjAgKzM3MywyMCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p
CiAJCQkJbmVlZF9tYXNrID0gMDsKIAkJCQlicmVhazsKIAkJCWNhc2UgT1BfUkVNT1ZFX0RFRjoK
LQkJCQlpZiAoYWNsX3R5cGUgPT0gQUNMX1RZUEVfTkZTNCkgewotCQkJCQl3YXJueCgiJXM6IHRo
ZXJlIGFyZSBubyBkZWZhdWx0IGVudHJpZXMgaW4gTkZTdjQgQUNMczsgIgotCQkJCQkgICAgImNh
bm5vdCByZW1vdmUiLCBmaWxlLT5maWxlbmFtZSk7Ci0JCQkJCWxvY2FsX2Vycm9yKys7Ci0JCQkJ
CWJyZWFrOwotCQkJCX0KLQkJCQlpZiAoYWNsX2RlbGV0ZV9kZWZfZmlsZShmaWxlLT5maWxlbmFt
ZSkgPT0gLTEpIHsKLQkJCQkJd2FybigiJXM6IGFjbF9kZWxldGVfZGVmX2ZpbGUoKSBmYWlsZWQi
LAotCQkJCQkgICAgZmlsZS0+ZmlsZW5hbWUpOwotCQkJCQlsb2NhbF9lcnJvcisrOworCQkJCWlm
IChhY2xfdHlwZSAhPSBBQ0xfVFlQRV9ORlM0KSB7CisJCQkJCWlmIChhY2xfZGVsZXRlX2RlZl9m
aWxlKGZpbGUtPmZpbGVuYW1lKSA9PSAtMSkgeworCQkJCQkJd2FybigiJXM6IGFjbF9kZWxldGVf
ZGVmX2ZpbGUoKSBmYWlsZWQiLAorCQkJCQkJCWZpbGUtPmZpbGVuYW1lKTsKKwkJCQkJCWxvY2Fs
X2Vycm9yKys7CisJCQkJCX0KKwkJCQkJaWYgKGFjbF90eXBlID09IEFDTF9UWVBFX0RFRkFVTFQp
CisJCQkJCQlsb2NhbF9lcnJvciArPSByZW1vdmVfZGVmYXVsdCgmYWNsLAorCQkJCQkJCWZpbGUt
PmZpbGVuYW1lKTsKKwkJCQl9IGVsc2UgeworCQkJCQkvKiBGcmVlQlNEIGRvZXMgbm90IHN1cHBv
cnQgYSB6ZXJvIGFtb3VudCBvZiBBQ0wgZW50cmllcyBsaWtlIFNvbGFyaXMsIGdpdmUgb3duZXJA
IGZ1bGwgcGVybWlzc2lvbnMgKi8KKwkJCQkJYWNsX2ZyZWUoYWNsKTsKKwkJCQkJYWNsID0gYWNs
X2Zyb21fdGV4dCgib3duZXJAOmZ1bGxfc2V0OjphbGxvdyIpOwogCQkJCX0KLQkJCQlpZiAoYWNs
X3R5cGUgPT0gQUNMX1RZUEVfREVGQVVMVCkKLQkJCQkJbG9jYWxfZXJyb3IgKz0gcmVtb3ZlX2Rl
ZmF1bHQoJmFjbCwKLQkJCQkJICAgIGZpbGUtPmZpbGVuYW1lKTsKIAkJCQluZWVkX21hc2sgPSAw
OwogCQkJCWJyZWFrOwogCQkJY2FzZSBPUF9SRU1PVkVfQUNMOgo=
--002215b02cc23db270049d646457
Content-Type: application/octet-stream; name="zfs_acl_set.patch"
Content-Disposition: attachment; filename="zfs_acl_set.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gkqbw7b82

Ci0tLSByZWxlbmdfOF8yL3NyYy9saWIvbGliYy9wb3NpeDFlL2FjbF9zdXBwb3J0X25mczQuYwky
MDEwLTEyLTIxIDEwOjA5OjI1LjAwMDAwMDAwMCAtMDcwMAorKysgc3JjL2xpYi9saWJjL3Bvc2l4
MWUvYWNsX3N1cHBvcnRfbmZzNC5jCTIwMTEtMDEtMTEgMTA6NTE6MTEuMDAwMDAwMDAwIC0wNzAw
CkBAIC0xNDQsMTMgKzE0NCwzOCBAQAogCiAJd2hpbGUgKHN0ciAhPSBOVUxMKSB7CiAJCWZsYWcg
PSBzdHJzZXAoJnN0ciwgIi86Iik7Ci0KIAkJZm91bmQgPSAwOwotCQlmb3IgKGkgPSAwOyBmbGFn
c1tpXS5uYW1lICE9IE5VTEw7IGkrKykgewotCQkJaWYgKHN0cmNtcChmbGFnc1tpXS5uYW1lLCBm
bGFnKSA9PSAwKSB7CisKKwkJaWYgKGZsYWdzID09IGFfYWNjZXNzX21hc2tzICYmIHN0cmNtcCgi
ZnVsbF9zZXQiLCBmbGFnKSA9PSAwKSB7CisJCQlmb3IgKGkgPSAwOyBmbGFnc1tpXS5uYW1lICE9
IE5VTEw7IGkrKykKIAkJCQkqdmFyIHw9IGZsYWdzW2ldLmZsYWc7Ci0JCQkJZm91bmQgPSAxOwot
CQkJCWV2ZXJfZm91bmQgPSAxOworCQkJZm91bmQgPSAxOworCQkJZXZlcl9mb3VuZCA9IDE7CisJ
CX0KKwkJZWxzZSBpZiAoZmxhZ3MgPT0gYV9hY2Nlc3NfbWFza3MgJiYgc3RyY21wKCJyZWFkX3Nl
dCIsIGZsYWcpID09IDApIHsKKwkJCSp2YXIgfD0gKEFDTF9SRUFEX0RBVEEgfCBBQ0xfUkVBRF9B
VFRSSUJVVEVTIHwgQUNMX1JFQURfTkFNRURfQVRUUlMgfCBBQ0xfUkVBRF9BQ0wpOworCQkJZm91
bmQgPSAxOworCQkJZXZlcl9mb3VuZCA9IDE7CisJCX0KKwkJZWxzZSBpZiAoZmxhZ3MgPT0gYV9h
Y2Nlc3NfbWFza3MgJiYgc3RyY21wKCJ3cml0ZV9zZXQiLCBmbGFnKSA9PSAwKSB7CisJCQkqdmFy
IHw9IChBQ0xfV1JJVEVfREFUQSB8IEFDTF9BUFBFTkRfREFUQSB8IEFDTF9XUklURV9BVFRSSUJV
VEVTIHwgQUNMX1dSSVRFX05BTUVEX0FUVFJTKTsKKwkJCWZvdW5kID0gMTsKKwkJCWV2ZXJfZm91
bmQgPSAxOworCQl9CisJCWVsc2UgaWYgKGZsYWdzID09IGFfYWNjZXNzX21hc2tzICYmIHN0cmNt
cCgibW9kaWZ5X3NldCIsIGZsYWcpID09IDApIHsKKwkJCWZvciAoaSA9IDA7IGZsYWdzW2ldLm5h
bWUgIT0gTlVMTDsgaSsrKQorCQkJCWlmIChmbGFnc1tpXS5mbGFnICE9IEFDTF9XUklURV9BQ0wg
fHwgZmxhZ3NbaV0uZmxhZyAhPSBBQ0xfV1JJVEVfT1dORVIpCisJCQkJCSp2YXIgfD0gZmxhZ3Nb
aV0uZmxhZzsKKwkJCWZvdW5kID0gMTsKKwkJCWV2ZXJfZm91bmQgPSAxOworCQl9CisJCWVsc2Ug
eworCQkJZm9yIChpID0gMDsgZmxhZ3NbaV0ubmFtZSAhPSBOVUxMOyBpKyspIHsKKwkJCQlpZiAo
c3RyY21wKGZsYWdzW2ldLm5hbWUsIGZsYWcpID09IDApIHsKKwkJCQkJKnZhciB8PSBmbGFnc1tp
XS5mbGFnOworCQkJCQlmb3VuZCA9IDE7CisJCQkJCWV2ZXJfZm91bmQgPSAxOworCQkJCX0KIAkJ
CX0KIAkJfQogCgoK
--002215b02cc23db270049d646457--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTik7D_uzL33M-ABZmM27NpfXrPsuCXvjo2fhE7Ky>