Skip to main content

POSIX Compatibility

JuiceFS verifies POSIX compatibility mainly through two test suites: pjdfstest and Linux Test Project (LTP). The POSIX behavior described below is consistent across Community Edition, Cloud Service, and Enterprise Edition.

pjdfstest​

pjdfstest is a test suite focusing on POSIX system calls. JuiceFS has passed the latest 8,813 tests.

Note: disable trash when running pjdfstest​

pjdfstest deletes files directly. If JuiceFS trash is enabled, behavior differs from the test expectation. Disable trash before running tests:

juicefs config <meta-url> --trash-days 0

POSIX semantics and supported behaviors​

Besides what pjdfstest covers, JuiceFS provides:

  • Close-to-open consistency: once a file is written and closed, subsequent open/read can observe the latest data.
  • Atomic metadata operations: rename and other metadata operations are atomic (guaranteed by metadata engine transactions).
  • Unlinked open files remain accessible: within the same mount point, an opened file remains accessible after it is unlinked.
  • mmap support (validated with FSx).
  • fallocate with punch hole support.
  • Extended attributes (xattr).
  • BSD locks (flock).
  • POSIX record locks (fcntl): supports traditional (process-associated) record locks.

Record locks: traditional vs OFD locks​

POSIX record locks include traditional locks (F_SETLK) and OFD locks (F_OFD_SETLK). Due to limitations in the Linux FUSE kernel module implementation, JuiceFS currently supports traditional record locks only. See fcntl(2) for details.

Linux Test Project (LTP)​

LTP is a widely used test suite for validating Linux kernel and system call behavior. JuiceFS passes most filesystem-related tests. In historical LTP runs, a small number of cases were skipped or failed, typically due to:

  • SEEK_DATA / SEEK_HOLE expectations in lseek.
  • Certain open / openat behaviors required by specific cases.

Editions consistency​

The POSIX compatibility described above is consistent across the Community Edition, Cloud Service, and Enterprise Edition.

Further reading​

For the complete and most up-to-date details (including full test outputs and appendix), refer to the Community Edition documentation: https://juicefs.com/docs/community/posix_compatibility.