Zmena spravania chmod na FreeBSD 9 (alebo ZFS)

Cejka Rudolf cejkar at fit.vutbr.cz
Thu Nov 7 14:18:26 CET 2013


Miroslav Lachman wrote (2013/11/07):
> Marián Černý wrote:
> > Miroslav Lachman wrote:
> 
> [...]
> 
> > Netusite niekto, ci je mozne ACL na ZFS vypnut?

Zdá se, že to podstatné je v ZFS zadrátované, viz
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c:

static int
zfs_pathconf(vnode_t *vp, int cmd, ulong_t *valp, cred_t *cr,
    caller_context_t *ct)
{
...
        case _PC_ACL_NFS4:
                *valp = 1;
                return (0);
...
}

A části z /usr/src/bin/chmod/chmod.c, které ukazují, že když pathconf()
vrátí nulu, optimalizace se udělá, ale pokud pathconf() vrátí 1,
optimalizace se neudělá:

...
                /*
                 * With NFSv4 ACLs, it is possible that applying a mode
                 * identical to the one computed from an ACL will change
                 * that ACL.
                 */
                if (may_have_nfs4acl(p, hflag) == 0 &&
                    (newmode & ALLPERMS) == (p->fts_statp->st_mode & ALLPERMS))
                                continue;
... ### continue a chmod se neudělá ###
                        error = chmod(p->fts_accpath, newmode);
...

may_have_nfs4acl(const FTSENT *ent, int hflag)
{
...
                        ret = pathconf(ent->fts_accpath, _PC_ACL_NFS4);
...
}

Spíš než změně v ZFS věřím ve změně v chmod.c, ale na historii jsem se
nedíval, to už můžou další ;o)

-- 
Rudolf Cejka <cejkar at fit.vutbr.cz> http://www.fit.vutbr.cz/~cejkar
Brno University of Technology, Faculty of Information Technology
Bozetechova 2, 612 66  Brno, Czech Republic


More information about the Users-l mailing list