ok. repquota is going through and reading the quoata file. Which it can only do on UFS.
There is, as far as I can tell, no problem with checking hasquota() first, although if it returns no error, then there's no reason to call quotactl() afterwards, I think.
This means the code should be moved around and refactored a bit to get the tests done in the right way -- namely, only call quotactl() if hasquota() fails, but fail if quotactl() fails, but also if hasquota() succeeds but it's not UFS. (For now, anyway.)