linux-stable/fs/bcachefs
Kent Overstreet d4e3b928ab closures: CLOSURE_CALLBACK() to fix type punning
Control flow integrity is now checking that type signatures match on
indirect function calls. That breaks closures, which embed a work_struct
in a closure in such a way that a closure_fn may also be used as a
workqueue fn by the underlying closure code.

So we have to change closure fns to take a work_struct as their
argument - but that results in a loss of clarity, as closure fns have
different semantics from normal workqueue functions (they run owning a
ref on the closure, which must be released with continue_at() or
closure_return()).

Thus, this patc introduces CLOSURE_CALLBACK() and closure_type() macros
as suggested by Kees, to smooth things over a bit.

Suggested-by: Kees Cook <keescook@chromium.org>
Cc: Coly Li <colyli@suse.de>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-11-24 00:29:58 -05:00
..
Kconfig bcachefs: CONFIG_BCACHEFS_DEBUG_TRANSACTIONS no longer defaults to y 2023-11-04 22:19:13 -04:00
Makefile
acl.c
acl.h
alloc_background.c bcachefs: use swab40 for bch_backpointer.bucket_offset bitfield 2023-11-04 22:19:13 -04:00
alloc_background.h
alloc_foreground.c bcachefs: update alloc cursor in early bucket allocator 2023-11-04 22:19:13 -04:00
alloc_foreground.h
alloc_types.h
backpointers.c bcachefs: Fix null ptr deref in bch2_backpointer_get_node() 2023-11-13 21:42:22 -05:00
backpointers.h bcachefs: use swab40 for bch_backpointer.bucket_offset bitfield 2023-11-04 22:19:13 -04:00
bbpos.h
bbpos_types.h
bcachefs.h bcachefs: Fix multiple -Warray-bounds warnings 2023-11-13 21:42:22 -05:00
bcachefs_format.h bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
bcachefs_ioctl.h
bkey.c
bkey.h bcachefs: bkey_copy() is no longer a macro 2023-11-05 13:12:18 -05:00
bkey_buf.h
bkey_cmp.h
bkey_methods.c bcachefs: rebalance_work btree is not a snapshots btree 2023-11-04 22:19:13 -04:00
bkey_methods.h
bkey_sort.c bcachefs: bkey_copy() is no longer a macro 2023-11-05 13:12:18 -05:00
bkey_sort.h
bset.c
bset.h
btree_cache.c Second bcachefs pull request for 6.7-rc1 2023-11-07 11:38:38 -08:00
btree_cache.h
btree_gc.c
btree_gc.h
btree_io.c closures: CLOSURE_CALLBACK() to fix type punning 2023-11-24 00:29:58 -05:00
btree_io.h
btree_iter.c bcachefs: Kill journal pre-reservations 2023-11-14 23:44:43 -05:00
btree_iter.h bcachefs: Add a comment for BTREE_INSERT_NOJOURNAL usage 2023-11-04 22:19:13 -04:00
btree_journal_iter.c
btree_journal_iter.h
btree_key_cache.c bcachefs: Kill journal pre-reservations 2023-11-14 23:44:43 -05:00
btree_key_cache.h
btree_key_cache_types.h bcachefs: Run btree key cache shrinker less aggressively 2023-11-13 21:45:01 -05:00
btree_locking.c bcachefs: Ensure srcu lock is not held too long 2023-11-04 14:17:11 -04:00
btree_locking.h
btree_trans_commit.c bcachefs: Kill journal pre-reservations 2023-11-14 23:44:43 -05:00
btree_types.h bcachefs: Don't decrease BTREE_ITER_MAX when LOCKDEP=y 2023-11-14 23:44:44 -05:00
btree_update.c
btree_update.h
btree_update_interior.c closures: CLOSURE_CALLBACK() to fix type punning 2023-11-24 00:29:58 -05:00
btree_update_interior.h bcachefs: Kill journal pre-reservations 2023-11-14 23:44:43 -05:00
btree_write_buffer.c
btree_write_buffer.h
btree_write_buffer_types.h
buckets.c
buckets.h
buckets_types.h
buckets_waiting_for_journal.c
buckets_waiting_for_journal.h
buckets_waiting_for_journal_types.h
chardev.c
chardev.h
checksum.c
checksum.h
clock.c
clock.h
clock_types.h
compress.c
compress.h
counters.c
counters.h
darray.h bcachefs: Convert bch2_fs_open() to darray 2023-11-05 13:12:17 -05:00
data_update.c bcachefs: Check for nonce offset inconsistency in data_update path 2023-11-13 21:45:03 -05:00
data_update.h
debug.c
debug.h
dirent.c
dirent.h
disk_groups.c bcachefs: Fix potential sleeping during mount 2023-11-14 23:44:43 -05:00
disk_groups.h
disk_groups_types.h
ec.c bcachefs: Guard against insufficient devices to create stripes 2023-11-13 21:42:22 -05:00
ec.h bcachefs: bch2_ec_read_extent() now takes btree_trans 2023-11-05 13:13:57 -05:00
ec_types.h
errcode.c
errcode.h bcachefs: Replace ERANGE with private error codes 2023-11-05 13:12:18 -05:00
error.c
error.h
extent_update.c
extent_update.h
extents.c
extents.h
extents_types.h
eytzinger.h
fifo.h
fs-common.c bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
fs-common.h
fs-io-buffered.c bcachefs: allow writeback to fill bio completely 2023-11-04 22:19:13 -04:00
fs-io-buffered.h
fs-io-direct.c closures: CLOSURE_CALLBACK() to fix type punning 2023-11-24 00:29:58 -05:00
fs-io-direct.h
fs-io-pagecache.c bcachefs: Use correct fgf_t type as function argument 2023-11-13 21:42:21 -05:00
fs-io-pagecache.h bcachefs: Use correct fgf_t type as function argument 2023-11-13 21:42:21 -05:00
fs-io.c
fs-io.h
fs-ioctl.c bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
fs-ioctl.h bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
fs.c bcachefs: Fix error path in bch2_mount() 2023-11-14 23:44:43 -05:00
fs.h
fsck.c bcachefs: Fix bch2_check_nlinks() for snapshots 2023-11-14 23:44:44 -05:00
fsck.h
inode.c bcachefs: Fix missing transaction commit 2023-11-14 23:44:43 -05:00
inode.h bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
io_misc.c
io_misc.h
io_read.c bcachefs: bch2_ec_read_extent() now takes btree_trans 2023-11-05 13:13:57 -05:00
io_read.h
io_write.c closures: CLOSURE_CALLBACK() to fix type punning 2023-11-24 00:29:58 -05:00
io_write.h closures: CLOSURE_CALLBACK() to fix type punning 2023-11-24 00:29:58 -05:00
io_write_types.h
journal.c bcachefs: Kill journal pre-reservations 2023-11-14 23:44:43 -05:00
journal.h bcachefs: Kill journal pre-reservations 2023-11-14 23:44:43 -05:00
journal_io.c closures: CLOSURE_CALLBACK() to fix type punning 2023-11-24 00:29:58 -05:00
journal_io.h closures: CLOSURE_CALLBACK() to fix type punning 2023-11-24 00:29:58 -05:00
journal_reclaim.c bcachefs: Kill journal pre-reservations 2023-11-14 23:44:43 -05:00
journal_reclaim.h
journal_sb.c
journal_sb.h
journal_seq_blacklist.c
journal_seq_blacklist.h
journal_types.h bcachefs: Kill journal pre-reservations 2023-11-14 23:44:43 -05:00
keylist.c
keylist.h
keylist_types.h
logged_ops.c
logged_ops.h
lru.c
lru.h
mean_and_variance.c
mean_and_variance.h
mean_and_variance_test.c
migrate.c
migrate.h
move.c bcachefs: Data move path now uses bch2_trans_unlock_long() 2023-11-04 22:19:11 -04:00
move.h bcachefs: Data move path now uses bch2_trans_unlock_long() 2023-11-04 22:19:11 -04:00
move_types.h
movinggc.c bcachefs: fix odebug warn and lockdep splat due to on-stack rhashtable 2023-11-04 22:19:13 -04:00
movinggc.h
nocow_locking.c
nocow_locking.h
nocow_locking_types.h
opts.c bcachefs: Replace ERANGE with private error codes 2023-11-05 13:12:18 -05:00
opts.h
printbuf.c
printbuf.h
quota.c
quota.h
quota_types.h
rebalance.c bcachefs: Data move path now uses bch2_trans_unlock_long() 2023-11-04 22:19:11 -04:00
rebalance.h
rebalance_types.h
recovery.c bcachefs: Fix recovery when forced to use JSET_NO_FLUSH journal entry 2023-11-04 22:19:13 -04:00
recovery.h
recovery_types.h
reflink.c
reflink.h
replicas.c
replicas.h
replicas_types.h
sb-clean.c bcachefs: Don't iterate over journal entries just for btree roots 2023-11-05 13:12:18 -05:00
sb-clean.h
sb-errors.c bcachefs: bch2_prt_datetime() 2023-11-05 13:12:08 -05:00
sb-errors.h
sb-errors_types.h
sb-members.c bcachefs: Move __bch2_members_v2_get_mut to sb-members.h 2023-11-05 13:12:17 -05:00
sb-members.h bcachefs: Move __bch2_members_v2_get_mut to sb-members.h 2023-11-05 13:12:17 -05:00
seqmutex.h
siphash.c
siphash.h
six.c bcachefs: six locks: Fix lost wakeup 2023-11-14 23:44:44 -05:00
six.h
snapshot.c
snapshot.h
str_hash.h
subvolume.c
subvolume.h
subvolume_types.h bcachefs: Use DECLARE_FLEX_ARRAY() helper and fix multiple -Warray-bounds warnings 2023-11-13 21:42:21 -05:00
super-io.c bcachefs: bch2_prt_datetime() 2023-11-05 13:12:08 -05:00
super-io.h
super.c bcachefs: Convert bch2_fs_open() to darray 2023-11-05 13:12:17 -05:00
super.h
super_types.h
sysfs.c Second bcachefs pull request for 6.7-rc1 2023-11-07 11:38:38 -08:00
sysfs.h
tests.c
tests.h
trace.c
trace.h bcachefs: Kill journal pre-reservations 2023-11-14 23:44:43 -05:00
two_state_shared_lock.c
two_state_shared_lock.h
util.c bcachefs: bch2_prt_datetime() 2023-11-05 13:12:08 -05:00
util.h bcachefs: bch2_prt_datetime() 2023-11-05 13:12:08 -05:00
varint.c
varint.h
vstructs.h
xattr.c bcachefs: Fix missing locking for dentry->d_parent access 2023-11-16 16:57:19 -05:00
xattr.h