Samba, ZFS and FreeBSD 12

Carmel NY carmel_ny at outlook.com
Fri Jan 18 13:17:52 UTC 2019


On Fri, 18 Jan 2019 13:30:53 +0100 (CET), Trond Endrestøl stated:

>On Fri, 18 Jan 2019 12:08-0000, Carmel NY wrote:
>
>> On Fri, 18 Jan 2019 12:51:42 +0100, Luciano Mannucci stated:
>>   
>> >On Fri, 18 Jan 2019 12:38:20 +0100 (CET)
>> >Trond Endrestøl <Trond.Endrestol at fagskolen.gjovik.no> wrote:
>> >  
>> >> The logs keep filling up:
>> >> 
>> >> Jan 18 12:36:31 <daemon.err> hostname smbd[2115]: [2019/01/18
>> >> 12:36:31.841720,
>> >> 0] ../source3/lib/sysquotas_4B.c:148(sys_quotactl_4B) Jan 18
>> >> 12:36:31 <daemon.err> hostname smbd[2115]:   failed to get quota
>> >> for group ID 65534 on .: No such file or directory    
>> >Is your zfs pool status OK? what does zpool status say?
>> >
>> >Luciano.  
>> 
>> # zpool status
>>   pool: zroot
>>  state: ONLINE
>> status: Some supported features are not enabled on the pool. The
>> pool can still be used, but some features are unavailable.
>> action: Enable all features using 'zpool upgrade'. Once this is done,
>>         the pool may no longer be accessible by software that does
>> not support the features. See zpool-features(7) for details.
>>   scan: scrub repaired 0 in 0 days 00:10:17 with 0 errors on Fri Dec
>> 21 07:10:14 2018 config:
>> 
>>         NAME        STATE     READ WRITE CKSUM
>>         zroot       ONLINE       0     0     0
>>           ada0p3    ONLINE       0     0     0
>> 
>> errors: No known data errors  
>
>I think I solved it.
>
>If Samba is compiled with support for quota, but we don't intend to 
>use that feature, we may simply set this global option:
>
>get quota command = /bin/echo 0 0 0 0 0 0 0 1024
>
>A more sophisticated solution is to create /usr/local/sbin/query_quota 
>or something similar, and let it adhere to the specification found in 
>smb.conf(5):
>
>This parameter should specify the path to a script that queries the
>quota information for the specified user/group for the partition that
>the specified directory is on.
>
>Such a script is being given 3 arguments:
>
>directory
>
>type of query
>
>uid of user or gid of group
>
>The directory is actually mostly just "." - It needs to be treated
>relatively to the current working directory that the script can also
>query.
>
>The type of query can be one of:
>
>1 - user quotas
>
>2 - user default quotas (uid = -1)
>
>3 - group quotas
>
>4 - group default quotas (gid = -1)
>
>This script should print one line as output with spaces between the
>columns. The printed columns should be:
>
>1 - quota flags (0 = no quotas, 1 = quotas enabled, 2 = quotas enabled
>and enforced)
>
>2 - number of currently used blocks
>
>3 - the softlimit number of blocks
>
>4 - the hardlimit number of blocks
>
>5 - currently used number of inodes
>
>6 - the softlimit number of inodes
>
>7 - the hardlimit number of inodes
>
>8 (optional) - the number of bytes in a block(default is 1024)
>

I just got this back from the Samba mailing list:

You're getting this due to the error code being returned in errno
not being one that Samba expects. Here's the underlying code:

       ret = quotactl(path, cmd, id, qblk);
        if (ret == -1) {
                /* ENOTSUP means quota support is not compiled in.
       EINVAL
                 * means that quotas are not configured (commonly).
                 */
                if (errno != ENOTSUP && errno != EINVAL) {
                        DEBUG(0, ("failed to %s quota for %s ID %u on
       %s: %s\n", (cmd & QCMD(Q_GETQUOTA, 0)) ? "get" : "set",
                                    (cmd & QCMD(0, GRPQUOTA)) ?
       "group" : "user", (unsigned)id, path, strerror(errno)));
                }


Looks like your system is returning ENOENT here in errno, not ENOTSUP
or EINVAL.

Is this a bug that I should report?

-- 
Carmel


More information about the freebsd-questions mailing list