source code of Linux source code
Go to file
David Howells 9ebff83e64 netfs: Prep to use folio->private for write grouping and streaming write
Prepare to use folio->private to hold information write grouping and
streaming write.  These are implemented in the same commit as they both
make use of folio->private and will be both checked at the same time in
several places.

"Write grouping" involves ordering the writeback of groups of writes, such
as is needed for ceph snaps.  A group is represented by a
filesystem-supplied object which must contain a netfs_group struct.  This
contains just a refcount and a pointer to a destructor.

"Streaming write" is the storage of data in folios that are marked dirty,
but not uptodate, to avoid unnecessary reads of data.  This is represented
by a netfs_folio struct.  This contains the offset and length of the
modified region plus the otherwise displaced write grouping pointer.

The way folio->private is multiplexed is:

 (1) If private is NULL then neither is in operation on a dirty folio.

 (2) If private is set, with bit 0 clear, then this points to a group.

 (3) If private is set, with bit 0 set, then this points to a netfs_folio
     struct (with bit 0 AND'ed out).

Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
cc: linux-cachefs@redhat.com
cc: linux-fsdevel@vger.kernel.org
cc: linux-mm@kvack.org
2023-12-28 09:45:21 +00:00
Documentation netfs, fscache: Remove ->begin_cache_operation 2023-12-24 15:08:48 +00:00
LICENSES
arch netfs, fscache: Combine fscache with netfs 2023-12-24 15:08:46 +00:00
block block-6.7-2023-12-01 2023-12-02 06:39:30 +09:00
certs
crypto This push fixes a regression in ahash and hides the Kconfig sub-options for the jitter RNG. 2023-11-09 17:04:58 -08:00
drivers SCSI fixes on 20231223 2023-12-23 11:58:53 -08:00
fs netfs: Prep to use folio->private for write grouping and streaming write 2023-12-28 09:45:21 +00:00
include netfs: Prep to use folio->private for write grouping and streaming write 2023-12-28 09:45:21 +00:00
init
io_uring io_uring/cmd: fix breakage in SOCKET_URING_OP_SIOC* implementation 2023-12-14 16:52:13 -07:00
ipc
kernel Tracing fixes for 6.7: 2023-12-21 09:31:45 -08:00
lib printk changes for 6.8 2023-12-22 13:41:29 -08:00
mm mm/mglru: reclaim offlined memcgs harder 2023-12-12 17:20:20 -08:00
net Two small fixes scheduled for stable trees 2023-12-22 07:50:34 -08:00
rust
samples
scripts sign-file: Fix incorrect return values check 2023-12-13 12:55:11 -08:00
security keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on expiry 2023-12-21 13:47:38 +00:00
sound ALSA: hda: cs35l41: Only add SPI CS GPIO if SPI is enabled in kernel 2023-12-21 09:24:01 +01:00
tools RISC-V 2023-12-22 19:22:20 -08:00
usr
virt KVM/arm64 fixes for 6.7, part #2 2023-12-22 18:03:54 -05:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap mailmap: add entries for Geliang Tang 2023-12-17 20:54:22 +00:00
.rustfmt.toml
COPYING
CREDITS MAINTAINERS: drop Antti Palosaari 2023-12-06 16:12:49 -08:00
Kbuild
Kconfig
MAINTAINERS netfs, fscache: Move fs/fscache/* into fs/netfs/ 2023-12-24 11:36:00 +00:00
Makefile Linux 6.7-rc7 2023-12-23 16:25:56 -08:00
README

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.