The quota utility obtains the block device name (with getmntinfo())
then searches the corresponding fstab entry (with getfsspec()).
Unfortunately if the fstab entry uses the disk uuid, it doesn't
match the block device string and the fstab entry is skipped.
On the other hand, we can't use /dev/diskmap to get the
uuid<->blkdev mapping because it's not world readable (BTW: why? is
the mapping a secret?). Anyway, right now the only solution I think
of is to switch quota(1) into using mount points rather than device
names.
OK?
-- Alexandre
Index: quota.c
===================================================================
RCS file: /cvs/src/usr.bin/quota/quota.c,v
retrieving revision 1.30
diff -u -p -r1.30 quota.c
--- quota.c 8 Apr 2010 02:43:57 -0000 1.30
+++ quota.c 1 Jul 2013 10:10:02 -0000
@@ -462,7 +462,7 @@ getprivs(long id, int quotatype)
* on a filesystem independent of /etc/fstab, and it
* will still print quotas for them.
*/
- if ((fs = getfsspec(fst[i].f_mntfromname)) == NULL)
+ if ((fs = getfsfile(fst[i].f_mntonname)) == NULL)
continue;
if (getufsquota(&fst[i], fs, qup, id, quotatype) == 0)
continue;