lkml.org 
[lkml]   [2020]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    Subjectbcachefs-for-review
    Since last posting: The main change for upstreaming is that I've added deadlock
    avoidance code for the page cache coherency lock, and moved all of that code
    into fs/bcachefs/ for now - besides adding faults_disabled_mapping to task
    struct. See
    https://lore.kernel.org/linux-fsdevel/20201111191011.GE3365678@moria.home.lan/

    This addresses the last known blocker.

    Bcachefs status - not a lot new to report. I've been avoiding making major
    changes for awhile and focusing on stabilizing and torture testing, and outside
    of erasure coding almost everything is looking pretty solid.

    There've been some recent performance improvements - the main one is I changed
    the journalling code so that journal writes no longer have to be marked flush +
    fua, so now we only issue flush/fua writes when an fsync is done, or when needed
    to free up space in the journal, or after a timeout when there's dirty data in
    the journal (default 1 second).

    Known bugs:
    - we see oopses with zstd compression. It looks like if you pass
    ZSTD_compressCCtx() a buffer that's not guaranteed to be big enough to fit
    the output, it sometimes writes past the end of that buffer.

    - erasure coding is not quite stable, something's funky with the management of
    our stripes heap, and my erasure coding + device removal test is hanging.

    - xfstests generic/547 just started failing after the 5.10 rebase - this is an
    fsync issue

    - some timestamps bugs - generic/258 started failing after the 5.10 rebase

    Aside from that multiple devices, replication, compression, checksumming,
    encryption etc. should all be pretty solid - from polling my user base they say
    things have stabilized nicely over the past year.

    Non fs/bcachefs/ prep patches - bcachefs now depends on some SRCU patches from
    Paul McKenney that aren't in yet. Other than that, the list of non fs/bcachefs/
    patches has been getting steadily smaller since last posting.

    --------

    And here's the pull request. It's been rebased and tested on top of 5.10-rc7,
    and this is now the master branch that all the bcachefs users have been testing,
    not a separate for-review branch:

    The following changes since commit 0477e92881850d44910a7e94fc2c46f96faa131f:

    Linux 5.10-rc7 (2020-12-06 14:25:12 -0800)

    are available in the Git repository at:

    https://evilpiepirate.org/git/bcachefs.git

    for you to fetch changes up to b7ddbb0e20d2add011d8f5a035b04ca3ac8b34fa:

    bcachefs: Add some cond_rescheds() in shutdown path (2020-12-13 16:14:10 -0500)

    ----------------------------------------------------------------
    Justin Husted (2):
    bcachefs: Set lost+found mode to 0700
    bcachefs: Update directory timestamps during link

    Kent Overstreet (408):
    Compiler Attributes: add __flatten
    locking: SIX locks (shared/intent/exclusive)
    mm: export find_get_pages_range()
    sched: Add task_struct->faults_disabled_mapping
    mm: Bring back vmalloc_exec
    fs: factor out d_mark_tmpfile()
    block: Add some exports for bcachefs
    block: Add blk_status_to_str()
    bcache: move closures to lib/
    closures: closure_wait_event()
    bcachefs: Initial commit
    bcachefs: Fix setting of attributes mask in getattr
    bcachefs: Some reflink fixes
    bcachefs: Don't BUG_ON() sector count overflow
    bcachefs: Add an option for fsck error ratelimiting
    bcachefs: Avoid calling bch2_btree_iter_relock() in bch2_btree_iter_traverse()
    bcachefs: Inline fast path of bch2_increment_clock()
    bcachefs: Make __bch2_bkey_cmp_packed() smaller
    bcachefs: Pipeline binary searches and linear searches
    bcachefs: bch2_read_extent() microoptimizations
    bcachefs: kill BFLOAT_FAILED_PREV
    bcachefs: Fall back to slowpath on exact comparison
    bcachefs: Go back to 16 bit mantissa bkey floats
    bcachefs: Remove some BKEY_PADDED uses
    bcachefs: Be slightly less tricky with union usage
    bcachefs: Fix erorr path in bch2_write()
    bcachefs: Use wbc_to_write_flags()
    bcachefs: Make memcpy_to_bio() param const
    bcachefs: bkey_on_stack
    bcachefs: kill bch2_extent_has_device()
    bcachefs: bkey noops
    bcachefs: Rework of cut_front & cut_back
    bcachefs: Split out extent_update.c
    bcachefs: Inline data extents
    bcachefs: Reorganize extents.c
    bcachefs: splice_write is currently busted
    bcachefs: kill ca->freelist_lock
    bcachefs: bkey_on_stack_reassemble()
    bcachefs: Switch to macro for bkey_ops
    bcachefs: bch2_check_set_feature()
    bcachefs: Put inline data behind a mount option for now
    bcachefs: Fix bch2_verify_insert_pos()
    bcachefs: Always emit new extents on partial overwrite
    bcachefs: Whiteout changes
    bcachefs: Refactor whiteouts compaction
    bcachefs: Use one buffer for sorting whiteouts
    bcachefs: Kill btree_node_iter_large
    bcachefs: Fix a null ptr deref in btree_iter_traverse_one()
    bcachefs: Fix for an assertion on filesystem error
    bcachefs: Redo filesystem usage ioctls
    bcachefs: Fix a memory splat
    bcachefs: Add __GFP_NOWARN to a GFP_NOWAIT allocation
    bcachefs: Make io timers less buggy
    bcachefs: Redo copygc throttling
    bcachefs: Drop a faulty assertion
    bcachefs: bch2_trans_reset() calls should be at the tops of loops
    bcachefs: Convert all bch2_trans_commit() users to BTREE_INSERT_ATOMIC
    bcachefs: Kill BTREE_INSERT_ATOMIC
    bcachefs: Don't reexecute triggers when retrying transaction commit
    bcachefs: Don't export __bch2_fs_read_write
    bcachefs: Fix a use after free
    bcachefs: Add an assertion to track down a heisenbug
    bcachefs: Convert some enums to x-macros
    bcachefs: Use KEY_TYPE_deleted whitouts for extents
    bcachefs: Use bch2_trans_reset in bch2_trans_commit()
    bcachefs: Make btree_insert_entry more private to update path
    bcachefs: Split out btree_trigger_flags
    bcachefs: Sort & deduplicate updates in bch2_trans_update()
    bcachefs: Make sure bch2_read_extent obeys BCH_READ_MUST_CLONE
    bcachefs: Fix an iterator error path
    bcachefs: Don't print anything when device doesn't have a label
    bcachefs: Hacky fixes for device removal
    bcachefs: Kill bch2_fs_bug()
    bcachefs: Fix extent_to_replicas()
    bcachefs: Ensure iterators are valid before calling trans_mark_key()
    bcachefs: Don't call trans_iter_put() on error pointer
    bcachefs: Don't lose needs_whiteout in overwrite path
    bcachefs: Rework iter->pos handling
    bcachefs: Refactor bch2_btree_bset_insert_key()
    bcachefs: Add some comments for btree iterator flags
    bcachefs: Change btree split threshold to be in u64s
    bcachefs: Fix bch2_sort_keys() to not modify src keys
    bcachefs: Don't modify existing key in place in sort_repack_merge()
    bcachefs: Add a cond_resched() to rebalance loop
    bcachefs: Improve tracepoints slightly in commit path
    bcachefs: Refactor rebalance_pred function
    bcachefs: Track incompressible data
    bcachefs: Fix an in iterator leak
    bcachefs: Fix an uninitialized field in bch_write_op
    bcachefs: Improve an insert path optimization
    bcachefs: Make sure we're releasing btree iterators
    bcachefs: btree_and_journal_iter
    bcachefs: __bch2_btree_iter_set_pos()
    bcachefs: Make BTREE_ITER_IS_EXTENTS private to iter code
    bcachefs: Fix bch2_ptr_swab for indirect extents
    bcachefs: Check for bad key version number
    bcachefs: Fix traversing to interior nodes
    bcachefs: introduce b->hash_val
    bcachefs: btree_ptr_v2
    bcachefs: Seralize btree_update operations at btree_update_nodes_written()
    bcachefs: Kill TRANS_RESET_MEM|TRANS_RESET_ITERS
    bcachefs: Issue discards when needed to allocate journal write
    bcachefs: Fix incorrect initialization of btree_node_old_extent_overwrite()
    bcachefs: Use btree_ptr_v2.mem_ptr to avoid hash table lookup
    bcachefs: fix setting btree_node_accessed()
    bcachefs: BCH_SB_FEATURES_ALL
    bcachefs: Improve an error message
    bcachefs: Fix error message on bucket sector count overflow
    bcachefs: Dont't del sysfs dir until after we go RO
    bcachefs: Journal pin cleanups
    bcachefs: Some btree iterator improvements
    bcachefs: Fix extent_sort_fix_overlapping()
    bcachefs: Fix off by one error in bch2_extent_crc_append()
    bcachefs: Fix another iterator leak
    bcachefs: Fix bch2_dump_bset()
    bcachefs: Don't log errors that are expected during shutdown
    bcachefs: Traverse iterator in journal replay
    bcachefs: Skip 0 size deleted extents in journal replay
    bcachefs: Iterator debug code improvements
    bcachefs: Simplify bch2_btree_iter_peek_slot()
    bcachefs: More btree iter invariants
    bcachefs: Fix build when CONFIG_BCACHEFS_DEBUG=n
    bcachefs: btree_iter_peek_with_updates()
    bcachefs: Move extent overwrite handling out of core btree code
    bcachefs: Drop unused export
    bcachefs: Fix a use after free in dio write path
    bcachefs: Don't use peek_filter() unnecessarily
    bcachefs: Fix another iterator leak
    bcachefs: Clear BCH_FEATURE_extents_above_btree_updates on clean shutdown
    bcachefs: BCH_FEATURE_new_extent_overwrite is now required
    bcachefs: Shut down quicker
    bcachefs: Fix an iterator bug
    bcachefs: Fix count_iters_for_insert()
    bcachefs: Fix a locking bug in fsck
    bcachefs: Disable extent merging
    bcachefs: trans_commit() path can now insert to interior nodes
    bcachefs: Walk btree with keys from journal
    bcachefs: Replay interior node keys
    bcachefs: Journal updates to interior nodes
    bcachefs: Fix an assertion when nothing to replay
    bcachefs: Add an option for keeping journal entries after startup
    bcachefs: Improve error message in fsck
    bcachefs: Use memalloc_nofs_save()
    bcachefs: Various fixes for interior update path
    bcachefs: Read journal when keep_journal on
    bcachefs: Use kvpmalloc mempools for compression bounce
    bcachefs: Switch a BUG_ON() to a warning
    bcachefs: Kill bkey_type_successor
    bcachefs: Reduce max nr of btree iters when lockdep is on
    bcachefs: Don't allocate memory while holding journal reservation
    bcachefs: Check btree topology at startup
    bcachefs: Fix ec_stripe_update_ptrs()
    bcachefs: Fix inodes pass in fsck
    bcachefs: Fix a locking bug
    bcachefs: Fix iterating of journal keys within a btree node
    bcachefs: Fix journalling of interior node updates
    bcachefs: Add print method for bch2_btree_ptr_v2
    bcachefs: Fix fallocate FL_INSERT_RANGE
    bcachefs: Trace where btree iterators are allocated
    bcachefs: Add another mssing bch2_trans_iter_put() call
    bcachefs: Fix a null ptr deref during journal replay
    bcachefs: Fix another error path locking bug
    bcachefs: Fix a debug assertion
    bcachefs: Fix a debug mode assertion
    bcachefs: Fix a deadlock on starting an interior btree update
    bcachefs: Account for ioclock slop when throttling rebalance thread
    bcachefs: Fix a locking bug in bch2_btree_ptr_debugcheck()
    bcachefs: Fix another deadlock in the btree interior update path
    bcachefs: Fix a locking bug in bch2_journal_pin_copy()
    bcachefs: Improve lockdep annotation in journalling code
    bcachefs: Slightly reduce btree split threshold
    bcachefs: Add a few tracepoints
    bcachefs: Fix for the bkey compat path
    bcachefs: Handle -EINTR bch2_migrate_index_update()
    bcachefs: Fix a deadlock
    bcachefs: More fixes for counting extent update iterators
    bcachefs: Don't issue writes that are more than 1 MB
    bcachefs: Add some printks for error paths
    bcachefs: Fix another deadlock in btree_update_nodes_written()
    bcachefs: Fix two more deadlocks
    bcachefs: Some compression improvements
    bcachefs: Fix initialization of bounce mempools
    bcachefs: Fixes for startup on very full filesystems
    bcachefs: Validate that we read the correct btree node
    bcachefs: Fix a workqueue deadlock
    bcachefs: Fix setquota
    bcachefs: Fix another iterator counting bug
    bcachefs: Wrap vmap() in memalloc_nofs_save()/restore()
    bcachefs: Print out d_type in dirent_to_text()
    bcachefs: Add vmalloc fallback for decompress workspace
    bcachefs: Handle printing of null bkeys
    bcachefs: Be more rigorous about marking the filesystem clean
    bcachefs: Better error messages on bucket sector count overflows
    bcachefs: fix memalloc_nofs_restore() usage
    bcachefs: Fix reading of alloc info after unclean shutdown
    bcachefs: Add a mechanism for passing extra journal entries to bch2_trans_commit()
    bcachefs: Factor out bch2_fs_btree_interior_update_init()
    bcachefs: Interior btree updates are now fully transactional
    bcachefs: fsck_error_lock requires GFP_NOFS
    bcachefs: Don't require alloc btree to be updated before buckets are used
    bcachefs: Fixes for going RO
    bcachefs: Add an option to disable reflink support
    bcachefs: Set filesystem features earlier in fs init path
    bcachefs: Add debug code to print btree transactions
    bcachefs: Fix a deadlock in bch2_btree_node_get_sibling()
    bcachefs: Improve assorted error messages
    bcachefs: Kill old allocator startup code
    bcachefs: Always increment bucket gen on bucket reuse
    bcachefs: Improve warning for copygc failing to move data
    bcachefs: bch2_trans_downgrade()
    bcachefs: Call bch2_btree_iter_traverse() if necessary in commit path
    bcachefs: Check gfp_flags correctly in bch2_btree_cache_scan()
    bcachefs: btree_update_nodes_written() requires alloc reserve
    bcachefs: Make open bucket reserves more conservative
    bcachefs: Fix a linked list bug
    bcachefs: Don't allocate memory under the btree cache lock
    bcachefs: More open buckets
    bcachefs: Always give out journal pre-res if we already have one
    bcachefs: Refactor btree insert path
    bcachefs: Hacky io-in-flight throttling
    bcachefs: Fix a deadlock
    bcachefs: Don't deadlock when btree node reuse changes lock ordering
    bcachefs: Add an internal option for reading entire journal
    bcachefs: Turn c->state_lock into an rwsem
    bcachefs: Implement a new gc that only recalcs oldest gen
    bcachefs: btree_bkey_cached_common
    bcachefs: Btree key cache
    bcachefs: Use cached iterators for alloc btree
    bcachefs: Give bkey_cached_key same attributes as bpos
    bcachefs: Increase size of btree node reserve
    bcachefs: delete a slightly faulty assertion
    bcachefs: Fix lock ordering with new btree cache code
    bcachefs: Fix incorrect gfp check
    bcachefs: Fix a deadlock in the RO path
    bcachefs: Change bch2_dump_bset() to also print key values
    bcachefs: Add a kthread_should_stop() check to allocator thread
    bcachefs: Use btree reserve when appropriate
    bcachefs: Track sectors of erasure coded data
    bcachefs: Fix a null ptr deref in bch2_btree_iter_traverse_one()
    bcachefs: Fix bch2_extent_can_insert() not being called
    bcachefs: Refactor dio write code to reinit bch_write_op
    bcachefs: Don't cap ios in dio write path at 2 MB
    bcachefs: Use blk_status_to_str()
    bcachefs: Mark btree nodes as needing rewrite when not all replicas are RW
    bcachefs: Kill BTREE_TRIGGER_NOOVERWRITES
    bcachefs: Rework triggers interface
    bcachefs: Improve stripe triggers/heap code
    bcachefs: Move stripe creation to workqueue
    bcachefs: Refactor stripe creation
    bcachefs: Allow existing stripes to be updated with new data buckets
    bcachefs: Fix short buffered writes
    bcachefs: Use x-macros for data types
    bcachefs: Fix extent_ptr_durability() calculation for erasure coded data
    bcachefs: Drop extra pointers when marking data as in a stripe
    bcachefs: Make copygc thread global
    bcachefs: Add an option for rebuilding the replicas section
    bcachefs: Wrap write path in memalloc_nofs_save()
    bcachefs: Fix a faulty assertion
    bcachefs: Add bch2_blk_status_to_str()
    bcachefs: Don't restrict copygc writes to the same device
    bcachefs: Refactor replicas code
    bcachefs: Fix an error path
    bcachefs: Delete unused arguments
    bcachefs: Don't let copygc buckets be stolen by other threads
    bcachefs: Fix a race with BCH_WRITE_SKIP_CLOSURE_PUT
    bcachefs: Ensure we only allocate one EC bucket per writepoint
    bcachefs: Fix bch2_btree_node_insert_fits()
    bcachefs: Ensure we wake up threads locking node when reusing it
    bcachefs: Remove some uses of PAGE_SIZE in the btree code
    bcachefs: Convert various code to printbuf
    bcachefs: Fix maximum btree node size
    bcachefs: Don't disallow btree writes to RO devices
    bcachefs: Fix bch2_new_stripes_to_text()
    bcachefs: Fix a bug with the journal_seq_blacklist mechanism
    bcachefs: Don't block on allocations when only writing to specific device
    bcachefs: Change copygc to consider bucket fragmentation
    bcachefs: Fix disk groups not being updated when set via sysfs
    bcachefs: Fix a couple null ptr derefs when no disk groups exist
    bcachefs: Add a cond_resched() to bch2_alloc_write()
    bcachefs: Don't report inodes to statfs
    bcachefs: Some project id fixes
    bcachefs: Make sure to go rw if lazy in fsck
    bcachefs: Improvements to the journal read error paths
    bcachefs: Don't fail mount if device has been removed
    bcachefs: Fix unmount path
    bcachefs: Fix journal_seq_copy()
    bcachefs: Fix __bch2_truncate_page()
    bcachefs: Fix a lockdep splat
    bcachefs: Fix off-by-one error in ptr gen check
    bcachefs: Fix gc of stale ptr gens
    bcachefs: Copy ptr->cached when migrating data
    bcachefs: Fix errors early in the fs init process
    bcachefs: Fix another lockdep splat
    bcachefs: Fix copygc of compressed data
    bcachefs: Fix copygc dying on startup
    bcachefs: Disable preemption around write_seqcount() lock
    bcachefs: Perf improvements for bch_alloc_read()
    bcachefs: Don't write bucket IO time lazily
    bcachefs: Improvements to writing alloc info
    bcachefs: Start/stop io clock hands in read/write paths
    bcachefs: Fix for bad stripe pointers
    bcachefs: Account for stripe parity sectors separately
    bcachefs: Don't drop replicas when copygcing ec data
    bcachefs: Fix bch2_mark_stripe()
    bcachefs: Fix for passing target= opts as mount opts
    bcachefs: Improve some error messages
    bcachefs: Fix rare use after free in read path
    bcachefs: Indirect inline data extents
    bcachefs: Drop alloc keys from journal when -o reconstruct_alloc
    bcachefs: Always write a journal entry when stopping journal
    bcachefs: Add mode to bch2_inode_to_text
    bcachefs: Fix btree updates when mixing cached and non cached iterators
    bcachefs: fiemap fixes
    bcachefs: Use cached iterators for inode updates
    bcachefs: Fix stack corruption
    bcachefs: Improve tracing for transaction restarts
    bcachefs: Fix spurious transaction restarts
    bcachefs: Improve check for when bios are physically contiguous
    bcachefs: Inode create optimization
    bcachefs: Minor journal reclaim improvement
    bcachefs: Drop sysfs interface to debug parameters
    bcachefs: Split out debug_check_btree_accounting
    bcachefs: Don't embed btree iters in btree_trans
    bcachefs: add const annotations to bset.c
    bcachefs: Report inode counts via statfs
    bcachefs: Improved inode create optimization
    bcachefs: Delete memcpy() macro
    bcachefs: Build fixes for 32bit x86
    bcachefs: Add a single slot percpu buf for btree iters
    bcachefs: Fix spurious transaction restarts
    bcachefs: More inlinining in the btree key cache code
    bcachefs: Drop typechecking from bkey_cmp_packed()
    bcachefs: Fix build warning when CONFIG_BCACHEFS_DEBUG=n
    bcachefs: New varints
    bcachefs: use a radix tree for inum bitmap in fsck
    bcachefs: Inline make_bfloat() into __build_ro_aux_tree()
    bcachefs: Fix btree iterator leak
    bcachefs: Add accounting for dirty btree nodes/keys
    bcachefs: Fix btree key cache shutdown
    bcachefs: Fix missing memalloc_nofs_restore()
    bcachefs: Hack around bch2_varint_decode invalid reads
    bcachefs: Deadlock prevention for ei_pagecache_lock
    bcachefs: Improve journal entry validate code
    bcachefs: Fix a 64 bit divide
    bcachefs: Fix a btree transaction iter overflow
    bcachefs: Inode delete doesn't need to flush key cache anymore
    bcachefs: Be more careful in bch2_bkey_to_text()
    bcachefs: Improve journal error messages
    bcachefs: Delete dead journalling code
    bcachefs: Assorted journal refactoring
    bcachefs: Check for errors from register_shrinker()
    bcachefs: Take a SRCU lock in btree transactions
    bcachefs: Add a shrinker for the btree key cache
    bcachefs: Fix journal entry repair code
    bcachefs: Convert tracepoints to use %ps, not %pf
    bcachefs: Set preallocated transaction mem to avoid restarts
    bcachefs: Dont' use percpu btree_iter buf in userspace
    bcachefs: Dump journal state when the journal deadlocks
    bcachefs: Add more debug checks
    bcachefs: Add an ioctl for resizing journal on a device
    bcachefs: Add btree cache stats to sysfs
    bcachefs: Be more precise with journal error reporting
    bcachefs: Add a kmem_cache for btree_key_cache objects
    bcachefs: More debug code improvements
    bcachefs: Improve btree key cache shrinker
    bcachefs: Ensure journal reclaim runs when btree key cache is too dirty
    bcachefs: Simplify transaction commit error path
    bcachefs: Journal reclaim requires memalloc_noreclaim_save()
    bcachefs: Throttle updates when btree key cache is too dirty
    bcachefs: Move journal reclaim to a kthread
    bcachefs: Fix an rcu splat
    bcachefs: Don't use bkey cache for inode update in fsck
    bcachefs: bch2_btree_delete_range_trans()
    bcachefs: Delete dead code
    bcachefs: Optimize bch2_journal_flush_seq_async()
    bcachefs: Fix for __readahead_batch getting partial batch
    bcachefs: Fix journal reclaim spinning in recovery
    bcachefs: Fix error in filesystem initialization
    bcachefs: Change a BUG_ON() to a fatal error
    bcachefs: Ensure we always have a journal pin in interior update path
    bcachefs: Use BTREE_ITER_PREFETCH in journal+btree iter
    bcachefs: Fix for fsck spuriously finding duplicate extents
    bcachefs: Journal pin refactoring
    bcachefs: Add error handling to unit & perf tests
    bcachefs: bch2_trans_get_iter() no longer returns errors
    bcachefs: Fix journal_flush_seq()
    bcachefs: Fix some spurious gcc warnings
    bcachefs: Fix spurious alloc errors on forced shutdown
    bcachefs: Refactor filesystem usage accounting
    bcachefs: Improve some IO error messages
    bcachefs: Avoid write lock on mark_lock
    bcachefs: Flag inodes that had btree update errors
    bcachefs: Check for errors in bch2_journal_reclaim()
    bcachefs: Don't issue btree writes that weren't journalled
    bcachefs: Increase journal pipelining
    bcachefs: Improve journal free space calculations
    bcachefs: Don't require flush/fua on every journal write
    bcachefs: Be more conservation about journal pre-reservations
    bcachefs: Fix btree key cache dirty checks
    bcachefs: Prevent journal reclaim from spinning
    bcachefs: Try to print full btree error message
    bcachefs: Fix rand_delete() test
    bcachefs: Fix __btree_iter_next() when all iters are in use_next() when all iters are in use
    bcachefs: Only try to get existing stripe once in stripe create path
    bcachefs: Update transactional triggers interface to pass old & new keys
    bcachefs: Always check if we need disk res in extent update path
    bcachefs: Fix btree node merge -> split operations
    bcachefs: Add some cond_rescheds() in shutdown path

    Matthew Wilcox (Oracle) (3):
    bcachefs: Remove page_state_init_for_read
    bcachefs: Use attach_page_private and detach_page_private
    bcachefs: Convert to readahead

    Paul E. McKenney (6):
    srcu: Make Tiny SRCU use multi-bit grace-period counter
    srcu: Provide internal interface to start a Tiny SRCU grace period
    srcu: Provide internal interface to start a Tree SRCU grace period
    srcu: Provide polling interfaces for Tiny SRCU grace periods
    srcu: Provide polling interfaces for Tree SRCU grace periods
    srcu: Document polling interfaces for Tree SRCU grace periods

    Yuxuan Shui (1):
    bcachefs: fix stack corruption

    .../RCU/Design/Requirements/Requirements.rst | 18 +
    block/bio.c | 2 +
    block/blk-core.c | 13 +-
    drivers/md/bcache/Kconfig | 10 +-
    drivers/md/bcache/Makefile | 4 +-
    drivers/md/bcache/bcache.h | 2 +-
    drivers/md/bcache/super.c | 1 -
    drivers/md/bcache/util.h | 3 +-
    fs/Kconfig | 1 +
    fs/Makefile | 1 +
    fs/bcachefs/Kconfig | 51 +
    fs/bcachefs/Makefile | 60 +
    fs/bcachefs/acl.c | 388 +++
    fs/bcachefs/acl.h | 59 +
    fs/bcachefs/alloc_background.c | 1474 +++++++++
    fs/bcachefs/alloc_background.h | 105 +
    fs/bcachefs/alloc_foreground.c | 990 ++++++
    fs/bcachefs/alloc_foreground.h | 138 +
    fs/bcachefs/alloc_types.h | 113 +
    fs/bcachefs/bcachefs.h | 904 ++++++
    fs/bcachefs/bcachefs_format.h | 1686 +++++++++++
    fs/bcachefs/bcachefs_ioctl.h | 346 +++
    fs/bcachefs/bkey.c | 1154 +++++++
    fs/bcachefs/bkey.h | 565 ++++
    fs/bcachefs/bkey_methods.c | 365 +++
    fs/bcachefs/bkey_methods.h | 82 +
    fs/bcachefs/bkey_on_stack.h | 43 +
    fs/bcachefs/bkey_sort.c | 515 ++++
    fs/bcachefs/bkey_sort.h | 57 +
    fs/bcachefs/bset.c | 1738 +++++++++++
    fs/bcachefs/bset.h | 650 ++++
    fs/bcachefs/btree_cache.c | 1072 +++++++
    fs/bcachefs/btree_cache.h | 105 +
    fs/bcachefs/btree_gc.c | 1437 +++++++++
    fs/bcachefs/btree_gc.h | 121 +
    fs/bcachefs/btree_io.c | 1868 ++++++++++++
    fs/bcachefs/btree_io.h | 237 ++
    fs/bcachefs/btree_iter.c | 2443 +++++++++++++++
    fs/bcachefs/btree_iter.h | 311 ++
    fs/bcachefs/btree_key_cache.c | 657 ++++
    fs/bcachefs/btree_key_cache.h | 49 +
    fs/bcachefs/btree_locking.h | 259 ++
    fs/bcachefs/btree_types.h | 670 +++++
    fs/bcachefs/btree_update.h | 144 +
    fs/bcachefs/btree_update_interior.c | 2131 +++++++++++++
    fs/bcachefs/btree_update_interior.h | 333 +++
    fs/bcachefs/btree_update_leaf.c | 1158 +++++++
    fs/bcachefs/buckets.c | 2308 ++++++++++++++
    fs/bcachefs/buckets.h | 318 ++
    fs/bcachefs/buckets_types.h | 137 +
    fs/bcachefs/chardev.c | 728 +++++
    fs/bcachefs/chardev.h | 31 +
    fs/bcachefs/checksum.c | 618 ++++
    fs/bcachefs/checksum.h | 202 ++
    fs/bcachefs/clock.c | 191 ++
    fs/bcachefs/clock.h | 38 +
    fs/bcachefs/clock_types.h | 37 +
    fs/bcachefs/compress.c | 629 ++++
    fs/bcachefs/compress.h | 18 +
    fs/bcachefs/debug.c | 432 +++
    fs/bcachefs/debug.h | 34 +
    fs/bcachefs/dirent.c | 385 +++
    fs/bcachefs/dirent.h | 63 +
    fs/bcachefs/disk_groups.c | 486 +++
    fs/bcachefs/disk_groups.h | 91 +
    fs/bcachefs/ec.c | 1661 ++++++++++
    fs/bcachefs/ec.h | 171 ++
    fs/bcachefs/ec_types.h | 39 +
    fs/bcachefs/error.c | 172 ++
    fs/bcachefs/error.h | 214 ++
    fs/bcachefs/extent_update.c | 229 ++
    fs/bcachefs/extent_update.h | 16 +
    fs/bcachefs/extents.c | 1260 ++++++++
    fs/bcachefs/extents.h | 629 ++++
    fs/bcachefs/extents_types.h | 40 +
    fs/bcachefs/eytzinger.h | 285 ++
    fs/bcachefs/fifo.h | 127 +
    fs/bcachefs/fs-common.c | 315 ++
    fs/bcachefs/fs-common.h | 37 +
    fs/bcachefs/fs-io.c | 3161 ++++++++++++++++++++
    fs/bcachefs/fs-io.h | 56 +
    fs/bcachefs/fs-ioctl.c | 312 ++
    fs/bcachefs/fs-ioctl.h | 81 +
    fs/bcachefs/fs.c | 1659 ++++++++++
    fs/bcachefs/fs.h | 182 ++
    fs/bcachefs/fsck.c | 1487 +++++++++
    fs/bcachefs/fsck.h | 9 +
    fs/bcachefs/inode.c | 658 ++++
    fs/bcachefs/inode.h | 178 ++
    fs/bcachefs/io.c | 2411 +++++++++++++++
    fs/bcachefs/io.h | 169 ++
    fs/bcachefs/io_types.h | 148 +
    fs/bcachefs/journal.c | 1266 ++++++++
    fs/bcachefs/journal.h | 529 ++++
    fs/bcachefs/journal_io.c | 1351 +++++++++
    fs/bcachefs/journal_io.h | 45 +
    fs/bcachefs/journal_reclaim.c | 780 +++++
    fs/bcachefs/journal_reclaim.h | 85 +
    fs/bcachefs/journal_seq_blacklist.c | 308 ++
    fs/bcachefs/journal_seq_blacklist.h | 22 +
    fs/bcachefs/journal_types.h | 317 ++
    fs/bcachefs/keylist.c | 67 +
    fs/bcachefs/keylist.h | 76 +
    fs/bcachefs/keylist_types.h | 16 +
    fs/bcachefs/migrate.c | 170 ++
    fs/bcachefs/migrate.h | 7 +
    fs/bcachefs/move.c | 828 +++++
    fs/bcachefs/move.h | 65 +
    fs/bcachefs/move_types.h | 17 +
    fs/bcachefs/movinggc.c | 364 +++
    fs/bcachefs/movinggc.h | 9 +
    fs/bcachefs/opts.c | 438 +++
    fs/bcachefs/opts.h | 440 +++
    fs/bcachefs/quota.c | 783 +++++
    fs/bcachefs/quota.h | 71 +
    fs/bcachefs/quota_types.h | 43 +
    fs/bcachefs/rebalance.c | 332 ++
    fs/bcachefs/rebalance.h | 28 +
    fs/bcachefs/rebalance_types.h | 27 +
    fs/bcachefs/recovery.c | 1340 +++++++++
    fs/bcachefs/recovery.h | 60 +
    fs/bcachefs/reflink.c | 341 +++
    fs/bcachefs/reflink.h | 40 +
    fs/bcachefs/replicas.c | 1073 +++++++
    fs/bcachefs/replicas.h | 91 +
    fs/bcachefs/replicas_types.h | 10 +
    fs/bcachefs/siphash.c | 173 ++
    fs/bcachefs/siphash.h | 87 +
    fs/bcachefs/str_hash.h | 331 ++
    fs/bcachefs/super-io.c | 1155 +++++++
    fs/bcachefs/super-io.h | 137 +
    fs/bcachefs/super.c | 2051 +++++++++++++
    fs/bcachefs/super.h | 241 ++
    fs/bcachefs/super_types.h | 51 +
    fs/bcachefs/sysfs.c | 1063 +++++++
    fs/bcachefs/sysfs.h | 44 +
    fs/bcachefs/tests.c | 805 +++++
    fs/bcachefs/tests.h | 15 +
    fs/bcachefs/trace.c | 12 +
    fs/bcachefs/util.c | 907 ++++++
    fs/bcachefs/util.h | 750 +++++
    fs/bcachefs/varint.c | 42 +
    fs/bcachefs/varint.h | 8 +
    fs/bcachefs/vstructs.h | 63 +
    fs/bcachefs/xattr.c | 586 ++++
    fs/bcachefs/xattr.h | 49 +
    fs/dcache.c | 10 +-
    include/linux/blkdev.h | 1 +
    {drivers/md/bcache => include/linux}/closure.h | 39 +-
    include/linux/compiler_attributes.h | 5 +
    include/linux/dcache.h | 1 +
    include/linux/rcupdate.h | 2 +
    include/linux/sched.h | 1 +
    include/linux/six.h | 197 ++
    include/linux/srcu.h | 3 +
    include/linux/srcutiny.h | 7 +-
    include/linux/vmalloc.h | 1 +
    include/trace/events/bcachefs.h | 760 +++++
    init/init_task.c | 1 +
    kernel/Kconfig.locks | 3 +
    kernel/locking/Makefile | 1 +
    kernel/locking/six.c | 553 ++++
    kernel/module.c | 4 +-
    kernel/rcu/srcutiny.c | 77 +-
    kernel/rcu/srcutree.c | 127 +-
    lib/Kconfig | 3 +
    lib/Kconfig.debug | 9 +
    lib/Makefile | 2 +
    {drivers/md/bcache => lib}/closure.c | 35 +-
    mm/filemap.c | 1 +
    mm/nommu.c | 18 +
    mm/vmalloc.c | 21 +
    172 files changed, 68781 insertions(+), 95 deletions(-)
    create mode 100644 fs/bcachefs/Kconfig
    create mode 100644 fs/bcachefs/Makefile
    create mode 100644 fs/bcachefs/acl.c
    create mode 100644 fs/bcachefs/acl.h
    create mode 100644 fs/bcachefs/alloc_background.c
    create mode 100644 fs/bcachefs/alloc_background.h
    create mode 100644 fs/bcachefs/alloc_foreground.c
    create mode 100644 fs/bcachefs/alloc_foreground.h
    create mode 100644 fs/bcachefs/alloc_types.h
    create mode 100644 fs/bcachefs/bcachefs.h
    create mode 100644 fs/bcachefs/bcachefs_format.h
    create mode 100644 fs/bcachefs/bcachefs_ioctl.h
    create mode 100644 fs/bcachefs/bkey.c
    create mode 100644 fs/bcachefs/bkey.h
    create mode 100644 fs/bcachefs/bkey_methods.c
    create mode 100644 fs/bcachefs/bkey_methods.h
    create mode 100644 fs/bcachefs/bkey_on_stack.h
    create mode 100644 fs/bcachefs/bkey_sort.c
    create mode 100644 fs/bcachefs/bkey_sort.h
    create mode 100644 fs/bcachefs/bset.c
    create mode 100644 fs/bcachefs/bset.h
    create mode 100644 fs/bcachefs/btree_cache.c
    create mode 100644 fs/bcachefs/btree_cache.h
    create mode 100644 fs/bcachefs/btree_gc.c
    create mode 100644 fs/bcachefs/btree_gc.h
    create mode 100644 fs/bcachefs/btree_io.c
    create mode 100644 fs/bcachefs/btree_io.h
    create mode 100644 fs/bcachefs/btree_iter.c
    create mode 100644 fs/bcachefs/btree_iter.h
    create mode 100644 fs/bcachefs/btree_key_cache.c
    create mode 100644 fs/bcachefs/btree_key_cache.h
    create mode 100644 fs/bcachefs/btree_locking.h
    create mode 100644 fs/bcachefs/btree_types.h
    create mode 100644 fs/bcachefs/btree_update.h
    create mode 100644 fs/bcachefs/btree_update_interior.c
    create mode 100644 fs/bcachefs/btree_update_interior.h
    create mode 100644 fs/bcachefs/btree_update_leaf.c
    create mode 100644 fs/bcachefs/buckets.c
    create mode 100644 fs/bcachefs/buckets.h
    create mode 100644 fs/bcachefs/buckets_types.h
    create mode 100644 fs/bcachefs/chardev.c
    create mode 100644 fs/bcachefs/chardev.h
    create mode 100644 fs/bcachefs/checksum.c
    create mode 100644 fs/bcachefs/checksum.h
    create mode 100644 fs/bcachefs/clock.c
    create mode 100644 fs/bcachefs/clock.h
    create mode 100644 fs/bcachefs/clock_types.h
    create mode 100644 fs/bcachefs/compress.c
    create mode 100644 fs/bcachefs/compress.h
    create mode 100644 fs/bcachefs/debug.c
    create mode 100644 fs/bcachefs/debug.h
    create mode 100644 fs/bcachefs/dirent.c
    create mode 100644 fs/bcachefs/dirent.h
    create mode 100644 fs/bcachefs/disk_groups.c
    create mode 100644 fs/bcachefs/disk_groups.h
    create mode 100644 fs/bcachefs/ec.c
    create mode 100644 fs/bcachefs/ec.h
    create mode 100644 fs/bcachefs/ec_types.h
    create mode 100644 fs/bcachefs/error.c
    create mode 100644 fs/bcachefs/error.h
    create mode 100644 fs/bcachefs/extent_update.c
    create mode 100644 fs/bcachefs/extent_update.h
    create mode 100644 fs/bcachefs/extents.c
    create mode 100644 fs/bcachefs/extents.h
    create mode 100644 fs/bcachefs/extents_types.h
    create mode 100644 fs/bcachefs/eytzinger.h
    create mode 100644 fs/bcachefs/fifo.h
    create mode 100644 fs/bcachefs/fs-common.c
    create mode 100644 fs/bcachefs/fs-common.h
    create mode 100644 fs/bcachefs/fs-io.c
    create mode 100644 fs/bcachefs/fs-io.h
    create mode 100644 fs/bcachefs/fs-ioctl.c
    create mode 100644 fs/bcachefs/fs-ioctl.h
    create mode 100644 fs/bcachefs/fs.c
    create mode 100644 fs/bcachefs/fs.h
    create mode 100644 fs/bcachefs/fsck.c
    create mode 100644 fs/bcachefs/fsck.h
    create mode 100644 fs/bcachefs/inode.c
    create mode 100644 fs/bcachefs/inode.h
    create mode 100644 fs/bcachefs/io.c
    create mode 100644 fs/bcachefs/io.h
    create mode 100644 fs/bcachefs/io_types.h
    create mode 100644 fs/bcachefs/journal.c
    create mode 100644 fs/bcachefs/journal.h
    create mode 100644 fs/bcachefs/journal_io.c
    create mode 100644 fs/bcachefs/journal_io.h
    create mode 100644 fs/bcachefs/journal_reclaim.c
    create mode 100644 fs/bcachefs/journal_reclaim.h
    create mode 100644 fs/bcachefs/journal_seq_blacklist.c
    create mode 100644 fs/bcachefs/journal_seq_blacklist.h
    create mode 100644 fs/bcachefs/journal_types.h
    create mode 100644 fs/bcachefs/keylist.c
    create mode 100644 fs/bcachefs/keylist.h
    create mode 100644 fs/bcachefs/keylist_types.h
    create mode 100644 fs/bcachefs/migrate.c
    create mode 100644 fs/bcachefs/migrate.h
    create mode 100644 fs/bcachefs/move.c
    create mode 100644 fs/bcachefs/move.h
    create mode 100644 fs/bcachefs/move_types.h
    create mode 100644 fs/bcachefs/movinggc.c
    create mode 100644 fs/bcachefs/movinggc.h
    create mode 100644 fs/bcachefs/opts.c
    create mode 100644 fs/bcachefs/opts.h
    create mode 100644 fs/bcachefs/quota.c
    create mode 100644 fs/bcachefs/quota.h
    create mode 100644 fs/bcachefs/quota_types.h
    create mode 100644 fs/bcachefs/rebalance.c
    create mode 100644 fs/bcachefs/rebalance.h
    create mode 100644 fs/bcachefs/rebalance_types.h
    create mode 100644 fs/bcachefs/recovery.c
    create mode 100644 fs/bcachefs/recovery.h
    create mode 100644 fs/bcachefs/reflink.c
    create mode 100644 fs/bcachefs/reflink.h
    create mode 100644 fs/bcachefs/replicas.c
    create mode 100644 fs/bcachefs/replicas.h
    create mode 100644 fs/bcachefs/replicas_types.h
    create mode 100644 fs/bcachefs/siphash.c
    create mode 100644 fs/bcachefs/siphash.h
    create mode 100644 fs/bcachefs/str_hash.h
    create mode 100644 fs/bcachefs/super-io.c
    create mode 100644 fs/bcachefs/super-io.h
    create mode 100644 fs/bcachefs/super.c
    create mode 100644 fs/bcachefs/super.h
    create mode 100644 fs/bcachefs/super_types.h
    create mode 100644 fs/bcachefs/sysfs.c
    create mode 100644 fs/bcachefs/sysfs.h
    create mode 100644 fs/bcachefs/tests.c
    create mode 100644 fs/bcachefs/tests.h
    create mode 100644 fs/bcachefs/trace.c
    create mode 100644 fs/bcachefs/util.c
    create mode 100644 fs/bcachefs/util.h
    create mode 100644 fs/bcachefs/varint.c
    create mode 100644 fs/bcachefs/varint.h
    create mode 100644 fs/bcachefs/vstructs.h
    create mode 100644 fs/bcachefs/xattr.c
    create mode 100644 fs/bcachefs/xattr.h
    rename {drivers/md/bcache => include/linux}/closure.h (94%)
    create mode 100644 include/linux/six.h
    create mode 100644 include/trace/events/bcachefs.h
    create mode 100644 kernel/locking/six.c
    rename {drivers/md/bcache => lib}/closure.c (88%)

    \
     
     \ /
      Last update: 2020-12-13 23:41    [W:5.004 / U:0.196 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site