...at present do not seem to go together nicely:

# tail -n 1 /etc/fstab
73123067c3dc34d4.a /data ffs rw,userquota,groupquota 1 1

# /sbin/quotacheck /data
quotacheck: 73123067c3dc34d4.a: No such file or directory


Would the attached diff be acceptable? It appears to solve my issue,
working with both the /dev/sd0a and duid forms. Note that (for
unchanged fstab and patch applied), using quotacheck with the
then-current physical device (sd0a) complains.
# /sbin/quotacheck /dev/sd0a
/dev/sd0a not found in /etc/fstab

Hardly surprising, since it's indeed not in fstab; I suppose it's
overkill to add logic for this. In case the diff gets mangled in
transit, alternatively try: http://pastebin.com/VRN8wZX6

Regards,

Rogier


Index: Makefile
===================================================================
RCS file: /cvs/src/sbin/quotacheck/Makefile,v
retrieving revision 1.6
diff -u -r1.6 Makefile
--- Makefile    21 Sep 1997 11:37:57 -0000      1.6
+++ Makefile    29 Aug 2011 23:20:47 -0000
@@ -6,4 +6,7 @@
 MAN=   quotacheck.8
 .PATH: ${.CURDIR}/../fsck

+LDADD+=-lutil
+DPADD+=${LIBUTIL}
+
 .include <bsd.prog.mk>
Index: quotacheck.c
===================================================================
RCS file: /cvs/src/sbin/quotacheck/quotacheck.c,v
retrieving revision 1.25
diff -u -r1.25 quotacheck.c
--- quotacheck.c        27 Oct 2009 23:59:34 -0000      1.25
+++ quotacheck.c        29 Aug 2011 23:20:47 -0000
@@ -50,6 +50,7 @@
 #include <grp.h>
 #include <errno.h>
 #include <unistd.h>
+#include <util.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -263,13 +264,14 @@
        ino_t ino, inosused;
        pid_t pid;
        char *cp;
+       char *realdev;

        switch (pid = fork()) {
        case -1:        /* error */
                warn("fork");
                return 1;
        case 0:         /* child */
-               if ((fi = open(fsname, O_RDONLY, 0)) < 0)
+               if ((fi = opendev(fsname, O_RDONLY, 0, &realdev)) < 0)
                        err(1, "%s", fsname);
                sync();
                dev_bsize = 1;

Reply via email to