#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# See tmpfiles.d(5) for details

# Set the NOCOW attribute for directories of journal files. This flag
# is inherited by their new files and sub-directories. Matters only
# for btrfs filesystems.
#
# WARNING: Enabling the NOCOW attribute improves journal performance
#     substantially, but also disables the btrfs checksum logic. In
#     btrfs RAID filesystems the checksums are needed for rebuilding
#     corrupted files. Without checksums such rebuilds are not
#     possible.
#
# In a single-disk filesystem (or a filesystem without redundancy)
# enabling the NOCOW attribute for journal files is safe, because
# they have their own checksums and a rebuilding wouldn't be possible
# in any case.

h /var/log/journal - - - - +C
h /var/log/journal/%m - - - - +C
h /var/log/journal/remote - - - - +C
