One problem with the VV_HASACLS thing is that VOP_ACCESS() is called with an LK_SHARED lock and you can't modify v_vflag with that.
It looks like you have to explicitly enable ACLs before the file system is mounted with tunefs, and it's not the default? In that's true then if either FS_ACLS or FS_POSIX1EACLS is true during mount you could instead not set IMNT_NCLOOKUP, which would disable the lookup-in-namecache fastpath and everything would go through VOP_ACCESS() instead. It's kind of a big hammer but at least everything is always correct then. If not I'll dig into it in more detail tomorrow morning.
Thanks Andrew, I will go with the big hammer approach then.
christos |