No description
Find a file
Filipe Manana 4d6b2e17b5 btrfs: don't reserve space for checksums when writing to nocow files
commit feefe1f49d upstream.

Currently when doing a write to a file we always reserve metadata space
for inserting data checksums. However we don't need to do it if we have
a nodatacow file (-o nodatacow mount option or chattr +C) or if checksums
are disabled (-o nodatasum mount option), as in that case we are only
adding unnecessary pressure to metadata reservations.

For example on x86_64, with the default node size of 16K, a 4K buffered
write into a nodatacow file is reserving 655360 bytes of metadata space,
as it's accounting for checksums. After this change, which stops reserving
space for checksums if we have a nodatacow file or checksums are disabled,
we only need to reserve 393216 bytes of metadata.

CC: stable@vger.kernel.org # 6.1+
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 09:12:29 +01:00
arch work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:12:28 +01:00
block block: treat poll queue enter similarly to timeouts 2024-02-16 19:06:31 +01:00
certs
crypto crypto: api - Disallow identical driver names 2024-01-31 16:16:58 -08:00
Documentation net: sysfs: Fix /sys/class/net/<iface> path 2024-02-05 20:13:02 +00:00
drivers net: stmmac: xgmac: fix a typo of register name in DPP safety handling 2024-02-16 19:06:31 +01:00
fs btrfs: don't reserve space for checksums when writing to nocow files 2024-02-23 09:12:29 +01:00
include update workarounds for gcc "asm goto" issue 2024-02-23 09:12:28 +01:00
init update workarounds for gcc "asm goto" issue 2024-02-23 09:12:28 +01:00
io_uring io_uring/net: fix sr->len for IORING_OP_RECV with MSG_WAITALL and buffers 2024-02-16 19:06:30 +01:00
ipc
kernel clocksource: Skip watchdog check for large watchdog intervals 2024-02-16 19:06:31 +01:00
lib debugobjects: Stop accessing objects after releasing hash bucket lock 2024-02-05 20:12:47 +00:00
LICENSES
mm mm: page_alloc: unreserve highatomic page blocks before oom 2024-01-31 16:17:03 -08:00
net work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:12:28 +01:00
rust
samples work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:12:28 +01:00
scripts scripts/get_abi: fix source path leak 2024-01-31 16:17:01 -08:00
security lsm: new security_file_ioctl_compat() hook 2024-01-31 16:17:00 -08:00
sound ALSA: usb-audio: Sort quirk table entries 2024-02-16 19:06:31 +01:00
tools work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:12:28 +01:00
usr
virt kvm/vfio: ensure kvg instance stays around in kvm_vfio_group_add() 2023-09-13 09:42:46 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS genirq/affinity: Move group_cpus_evenly() into lib/ 2024-01-10 17:10:33 +01:00
Makefile Linux 6.1.78 2024-02-16 19:06:32 +01:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.