diff -r -u reference/source/smbd/quotas.c samba-3.0.6rc2/source/smbd/quotas.c --- reference/source/smbd/quotas.c Fri Jul 9 03:06:10 2004 +++ samba-3.0.6rc2/source/smbd/quotas.c Mon Aug 9 15:10:32 2004 @@ -882,8 +882,17 @@ restore_re_uid(); if (r==-1) + { + DEBUG(5, ("quotactl for uid=%u: %s", euser_id, strerror(errno))); return(False); + } + /* No quota for this user. */ + if (F.d_blk_softlimit==0 && F.d_blk_hardlimit==0) + { + return(False); + } + /* Use softlimit to determine disk space, except when it has been exceeded */ if ( (F.d_blk_softlimit && F.d_bcount>=F.d_blk_softlimit) || @@ -895,14 +904,10 @@ *dfree = 0; *dsize = F.d_bcount; } - else if (F.d_blk_softlimit==0 && F.d_blk_hardlimit==0) - { - return(False); - } else { *dfree = (F.d_blk_softlimit - F.d_bcount); - *dsize = F.d_blk_softlimit; + *dsize = F.d_blk_softlimit ? F.d_blk_softlimit : F.d_blk_hardlimit; } }