int ret;
 
        ret = fallocate(fd, mode, offset, length);
-       if (ret)
+       if (ret) {
+               /* Don't warn about a filesystem w/o fallocate support */
+               if (errno == EOPNOTSUPP)
+                       return ret;
                fprintf(stderr, "  ERROR %d: Failed to preallocate "
                        "space to %ld bytes\n", errno, (long) length);
+       }
 
        return ret;
 }
 
        /* preallocate 8M space to file */
        ret = do_fallocate(fd, 0, filsz, 0);
-       if (ret < 0)
+       if (ret < 0) {
+               /* Report success if fs doesn't support fallocate */
+               if (errno == EOPNOTSUPP) {
+                       fprintf(stdout, "Test skipped as fs doesn't support fallocate.\n");
+                       ret = 0;
+               }
                goto out;
+       }
 
        ret = do_pwrite(fd, buf, bufsz, bufsz * 10);
        if (!ret) {
 
        /* preallocate 4M space to file */
        ret = do_fallocate(fd, 0, filsz, 0);
-       if (ret < 0)
+       if (ret < 0) {
+               /* Report success if fs doesn't support fallocate */
+               if (errno == EOPNOTSUPP) {
+                       fprintf(stdout, "Test skipped as fs doesn't support fallocate.\n");
+                       ret = 0;
+               }
                goto out;
+       }
 
        ret = do_pwrite(fd, buf, bufsz, bufsz * 10);
        if (ret)
 
        /* preallocate 4M space to file */
        ret = do_fallocate(fd, 0, filsz, 0);
-       if (ret < 0)
+       if (ret < 0) {
+               /* Report success if fs doesn't support fallocate */
+               if (errno == EOPNOTSUPP) {
+                       fprintf(stdout, "Test skipped as fs doesn't support fallocate.\n");
+                       ret = 0;
+               }
                goto out;
+       }
 
        ret = do_pwrite(fd, buf, bufsz, bufsz * 10);
        if (ret)