Misc. bug fixes & restructuring.
diff --git a/diskio-unix.cc b/diskio-unix.cc
index b20f161..d65a644 100644
--- a/diskio-unix.cc
+++ b/diskio-unix.cc
@@ -348,7 +348,7 @@
       if (*err) {
          sectors = sz = 0;
       } // if
-      if ((errno == EFBIG) || (!*err)) {
+      if ((!*err) || (errno == EFBIG)) {
          *err = ioctl(fd, BLKGETSIZE64, &b);
          if (*err || b == 0 || b == sz)
             sectors = sz;