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)