- Backend: detect the actual filesystem mountpoint via 'df' instead of
hardcoding /srv/samba — setquota needs the mountpoint, not a subpath
- Backend: catch CalledProcessError and FileNotFoundError from setquota
and return the actual error message (e.g. quota not enabled, package
not installed) instead of crashing with 500
- Frontend: always send the share path in the quota API call so the
backend can find the right filesystem, even for SMB per-user quotas
- Frontend: read the actual error message from the response and show it
in the toast instead of just "N quota(s) failed"
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>