What is the ZFS ACl limit?

Hello =)

Does anyone know how many user ACL's ZFS can handle?

With other words: for how many users can I set ACL's like this one for the same directory?

# setfacl -m user:test1:rwxpDdaARWcCos:fd----:allow /mnt/project1
 
I've done a quick check on my FreeBSD9-STABLE (built on March 2012, though) and created a script that added a system user and along with him it added an ACL on a ZFS folder. The total count of ACL entries after which the system stopped, was 127. The error given was:

Code:
acl_set_file() failed: No space left on device>

I'll check for UFS limits as well.

EDIT: UFS limit of POSIX.1e ACLs in an old FreeBSD-9-CURRENT was 35, and the error message was:

Code:
acl_set_file() failed: Invalid argument
 
@mamalos

Great idea to just do the test. I get 121 with

Code:
setfacl -b /tank/project1

i=0
for u in $(ypcat passwd|awk -F':' '{print $1}'); do
    setfacl -m user:$u:rwxpDdaARWcCos:fd----:allow /tank/project1
    let i=i+1
    echo $i $u
done

on FreeBSD 9.
 
@mamalos

and that limit is not just for /tank/project1. Running

Code:
mkdir /tank/project1/test

i=0
for u in $(ypcat passwd|awk -F':' '{print $1}'); do
    setfacl -m user:$u:rwxpDdaARWcCos:fd----:allow /tank/project1/test
    let i=i+1
    echo $i $u
done

gives me
Code:
setfacl: /tank/project1/test: acl_set_file() failed: No space left on device
on the first iteration.

So the ACL limits is on the entire tree it seams.

I can however still copy files to /tank/project1.
 
Search the sources where MAX_ACL_ENTRIES is used in a conditional statement, and see if you can find the block of code that prints the aforementioned message. Moreover, you can patch the code at any point to print whatever variable you like at any time.
 
Back
Top