What are the (dis)advantages of ext4, ReiserFS, JFS, and XFS?

I'll just name a few pro and con points for each. This is by no means an exhausting list, just an indication. If there are some big omissions that need to be in this list, leave a comment and I'll add them, so we get a nice, big list in one place.

ext4

Pro:

  • supported by all distro's, commercial and not, and based on ext3, so it's widely tested, stable and proven
  • all kinds for nice features (like extents, subsecond timestamps) which ext3 does not have.
  • Ability to shrink filesystem

Con:

  • rumor has it that it is slower than ext3, the fsync dataloss soap

XFS

Pro:

  • support for massive filesystems (up to 8 exabytes (yes, 'exa') on 64-bit systems)
  • online defrag
  • supported on upcoming RHEL6 as the 'large filesystem' option
  • proven track record: xfs has been around for ages

Con:

  • wikipedia mentions slow metadata operations, but I wouldn't know about that
  • potential dataloss on power cut, UPS is recommended, not really suitable for home systems
  • Unable to shrink the filesystem - See https://xfs.org/index.php/Shrinking_Support

JFS

Pro:

  • said to be fast (I have little experience with JFS)
  • originated in AIX: proven technology

Con:

  • used and supported by virtually no-one, except IBM (correct me if I'm wrong; I have never seen or heard about JFS used in production, though it obviously must be, somewhere)

ReiserFS

Pro:

  • fast with small files
  • very space efficient
  • stable and mature

Con:

  • not very active project anymore, next generation reiser 4 has succeeded it
  • no online defragmenter

Reiser 4

Pro:

  • very fast with small files
  • atomic transactions
  • very space efficient
  • metadata namespaces
  • plugin architecture, (crypto, compression, dedup and meta data plugins possible)

Con:

  • Reiser4 has a very uncertain future and has not been merged yet
  • main supporting distro (SuSE) dropped it years ago
  • Hans Reiser's 'legal issues' are not really helping

I recommend this page for further reading.