Al Viro (1):
erofs: fix handling kern_mount() failure
Baokun Li (29):
openeuler_defconfig: enable erofs ondemand for x86 and arm64
fscache: fix reference count leakage during abort init
fscache: fix assertion failure in fscache_put_object()
erofs: fix lockdep false positives on initializing erofs_pseudo_mnt
erofs: remove erofs_fscache_netfs
fscache: rename new_location to new_version
cachefiles: use mainline xattr in ondemand mode
cachefiles: remove err_put_fd tag in cachefiles_ondemand_daemon_read()
cachefiles: fix slab-use-after-free in cachefiles_ondemand_get_fd()
cachefiles: fix slab-use-after-free in
cachefiles_ondemand_daemon_read()
cachefiles: add output string to cachefiles_obj_[get|put]_ondemand_fd
cachefiles: add consistency check for copen/cread
cachefiles: stop sending new request when dropping object
cachefiles: flush all requests for the object that is being dropped
fscache: limit fscache_object_max_active to avoid blocking
cachefiles: add spin_lock for cachefiles_ondemand_info
cachefiles: never get a new anon fd if ondemand_id is valid
cachefiles: make on-demand read killable
fscache: set the default value of object_max_active to 256
cachefiles: flush all requests after setting CACHEFILES_DEAD
cachefiles: call cachefiles_ondemand_init_object() out of dir inode
lock
cachefiles: defer exposing anon_fd until after copy_to_user() succeeds
cachefiles: disallow to complete open requests with uninitialised
ondemand_id
cachefiles: clear FSCACHE_COOKIE_NO_DATA_YET for the new ondemand
object
erofs: correct the blknr/blkoff calculation in erofs_read_raw_page()
fscache: fix op leak due to abort init after parent ready
cachefiles: cyclic allocation of msg_id to avoid reuse
fscache: fix assertion failure in cachefiles_put_object()
cachefiles: prefault in user pages to aovid ABBA deadlock
David Howells (1):
cachefiles, erofs: Fix NULL deref in when cachefiles is not doing
ondemand-mode
Dawei Li (1):
erofs: protect s_inodes with s_inode_list_lock for fscache
Gao Xiang (26):
erofs: clean up file headers & footers
erofs: introduce chunk-based file on-disk format
erofs: support reading chunk-based uncompressed files
erofs: fix double free of 'copied'
erofs: introduce erofs_sb_has_xxx() helpers
erofs: decouple basic mount options from fs_context
erofs: add multiple device support
erofs: clean up erofs_map_blocks tracepoints
erofs: introduce meta buffer operations
erofs: use meta buffers for inode operations
erofs: use meta buffers for super operations
erofs: use meta buffers for xattr operations
erofs: use meta buffers for zmap operations
erofs: fix misbehavior of unsupported chunk format check
erofs: add fscache mode check helper
erofs: register fscache volume
erofs: add fscache context helper functions
erofs: add anonymous inode caching metadata for data blobs
erofs: register fscache context for primary data blob
erofs: register fscache context for extra data blobs
erofs: implement fscache-based metadata read
erofs: implement fscache-based data read for non-inline layout
erofs: implement fscache-based data read for inline layout
erofs: add 'fsid' mount option
erofs: scan devices from device table
erofs: fix order >= MAX_ORDER warning due to crafted negative i_size
Hou Tao (2):
erofs: check the uniqueness of fsid in shared domain in advance
cachefiles: flush ondemand_object_worker during clean object
Jeffle Xu (9):
erofs: use meta buffers for erofs_read_superblock()
cachefiles: notify the user daemon when looking up cookie
cachefiles: unbind cachefiles gracefully in on-demand mode
cachefiles: notify the user daemon when withdrawing cookie
cachefiles: implement on-demand read
cachefiles: enable on-demand read mode
anolis: cachefiles: skip check for n_children in on-demand mode
erofs: make erofs_map_blocks() generally available
erofs: leave compressed inodes unsupported in fscache mode for now
Jia Zhu (12):
cachefiles: narrow the scope of flushed requests when releasing fd
erofs: use kill_anon_super() to kill super in fscache mode
erofs: code clean up for fscache
erofs: introduce fscache-based domain
erofs: introduce a pseudo mnt to manage shared cookies
erofs: Support sharing cookies in the same domain
erofs: introduce 'domain_id' mount option
anolis: cachefiles: introduce object ondemand state
anolis: cachefiles: extract ondemand info field from cachefiles_object
anolis: cachefiles: resend an open request if the read request's
object is closed
anolis: cachefiles: narrow the scope of triggering EPOLLIN events in
ondemand mode
anolis: cachefiles: add restore command to recover inflight ondemand
read requests
Jingbo Xu (18):
anolis: cachefiles: replace BUG_ON() with WARN_ON()
anolis: cachefiles: fix volume key setup for cachefiles_open
anolis: cachefiles: refactor cachefiles_ondemand_daemon_read()
anolis: erofs: fix the name of erofs_fscache_super_index_def
anolis: cachefiles: maintain a file descriptor to the backing file
anolis: fscache,cachefiles: add fscache_prepare_read() helper
anolis: erofs: implement fscache-based data readahead
erofs: fix use-after-free of fsid and domain_id string
erofs: remove unused EROFS_GET_BLOCKS_RAW flag
anolis: cachefiles: optimize on-demand IO path with buffer IO
anolis: fscache: export fscache_object_wq
anolis: cachefiles: reset object->private to NULL when it's freed
anolis: cachefiles: add missing lock protection when polling
anolis: cachefiles: fix potential NULL in error path
erofs: relinquish volume with mutex held
erofs: maintain cookies of share domain in self-contained list
erofs: remove unused device mapping in meta routine
erofs: unify anonymous inodes for blob
Mikulas Patocka (1):
wait_on_bit: add an acquire memory barrier
Sun Ke (1):
cachefiles: fix error return code in cachefiles_ondemand_copen()
Xin Yin (1):
cachefiles: make on-demand request distribution fairer
Yu Kuai (10):
fscache: add new helper to determine cachefile location
fscache: generate new key_hash for new location
cachefiles: factor out helper to generate acc from
cachefiles_cook_key()
cachefiles: factor out helper to generate csum from
cachefiles_cook_key()
cachefiles: use volume key directly in cachefiles_cook_key() for new
location
cachefiles: skip acc in cachefiles_cook_key() for new location
cachefiles: skip volum csum cachefiles_cook_key() for new location
cachefiles: use key_hash as csum for new location
cachefiles: handle the unprintable case for new location in
cachefiles_cook_key()
erofs: switch to use new location
Yue Hu (1):
erofs: don't use erofs_map_blocks() any more
Zizhi Wo (20):
erofs: fix page unlock advance during readahead
erofs: add erofs switch to better control it
erofs: add erofs_ondemand switch
fscache: fix kernel BUG at __fscache_read_or_alloc_page
fscache: add a waiting mechanism when duplicate cookies are detected
fscache: Fix trace UAF in fscache_cookie_put()
cachefiles: Fix NULL pointer dereference in object->file
cachefiles: Restrict monitor calls to read_page
cachefiles: Fix cookie reference count leakage error
fscache: Add the unhash_cookie mechanism to fscache_drop_object()
cachefiles: Add restrictions to cachefiles_daemon_cull()
cachefiles: Change the mark inactive sequence in erofs ondemand mode
cachefiles: Set object to close if ondemand_id < 0 in copen
s390: provide arch_test_bit_acquire() for architecture s390
wait_on_bit: Add wait_on_bit_acquire() to provide memory barrier
fscache: add a memory barrier for FSCACHE_COOKIE_LOOKING_UP
fscache/cachefiles: add a memory barrier for waking and waiting
fscache/cachefiles: add a memory barrier for page_write
fscache: modify fscache_hash_cookie() to enhance security
cachefiles: modify inappropriate error return value in
cachefiles_daemon_secctx
Documentation/atomic_bitops.txt | 10 +-
Documentation/filesystems/erofs.rst | 28 +-
arch/arm64/configs/openeuler_defconfig | 9 +-
arch/s390/include/asm/bitops.h | 7 +
arch/x86/configs/openeuler_defconfig | 9 +-
arch/x86/include/asm/bitops.h | 21 +
fs/Makefile | 2 +
fs/cachefiles/Kconfig | 12 +
fs/cachefiles/Makefile | 1 +
fs/cachefiles/bind.c | 28 +-
fs/cachefiles/daemon.c | 134 +++-
fs/cachefiles/interface.c | 34 +-
fs/cachefiles/internal.h | 132 ++-
fs/cachefiles/key.c | 167 +++-
fs/cachefiles/namei.c | 45 +-
fs/cachefiles/ondemand.c | 752 ++++++++++++++++++
fs/cachefiles/rdwr.c | 201 ++++-
fs/cachefiles/xattr.c | 179 ++++-
fs/erofs/Kconfig | 35 +-
fs/erofs/Makefile | 2 +-
fs/erofs/compress.h | 2 -
fs/erofs/data.c | 259 ++++--
fs/erofs/decompressor.c | 5 +-
fs/erofs/dir.c | 2 -
fs/erofs/erofs_fs.h | 68 +-
fs/erofs/fscache.c | 568 +++++++++++++
fs/erofs/inode.c | 98 ++-
fs/erofs/internal.h | 161 +++-
fs/erofs/namei.c | 2 -
fs/erofs/super.c | 353 ++++++--
fs/erofs/tagptr.h | 3 -
fs/erofs/utils.c | 2 -
fs/erofs/xattr.c | 141 +---
fs/erofs/xattr.h | 2 -
fs/erofs/zdata.c | 35 +-
fs/erofs/zdata.h | 1 -
fs/erofs/zmap.c | 48 +-
fs/erofs/zpvec.h | 2 -
fs/fs_ctl.c | 43 +
fs/fscache/cookie.c | 149 ++--
fs/fscache/internal.h | 1 +
fs/fscache/main.c | 17 +-
fs/fscache/object.c | 39 +-
fs/fscache/page.c | 90 ++-
.../bitops/instrumented-non-atomic.h | 12 +
include/asm-generic/bitops/non-atomic.h | 14 +
include/linux/fs.h | 17 +
include/linux/fscache-cache.h | 8 +
include/linux/fscache.h | 60 +-
include/linux/wait_bit.h | 25 +
include/trace/events/cachefiles.h | 10 +-
include/trace/events/erofs.h | 7 +-
include/uapi/linux/cachefiles.h | 69 ++
kernel/sched/wait_bit.c | 40 +
lib/radix-tree.c | 1 +
55 files changed, 3614 insertions(+), 548 deletions(-)
create mode 100644 fs/cachefiles/ondemand.c
create mode 100644 fs/erofs/fscache.c
create mode 100644 fs/fs_ctl.c
create mode 100644 include/uapi/linux/cachefiles.h
--
2.46.1