[GIT PULL] bcachefs updates for 6.9

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus, few patches for you - plus a simple merge conflict with VFS
changes:

Cheers,
Kent

diff --cc fs/bcachefs/super-io.c
index 010daebf987b,bd64eb68e84a..000000000000
--- a/fs/bcachefs/super-io.c
+++ b/fs/bcachefs/super-io.c
@@@ -723,12 -715,11 +723,12 @@@ retry
  			opt_set(*opts, nochanges, true);
  	}
  
- 	if (IS_ERR(sb->bdev_handle)) {
- 		ret = PTR_ERR(sb->bdev_handle);
+ 	if (IS_ERR(sb->s_bdev_file)) {
+ 		ret = PTR_ERR(sb->s_bdev_file);
 +		prt_printf(&err, "error opening %s: %s", path, bch2_err_str(ret));
  		goto err;
  	}
- 	sb->bdev = sb->bdev_handle->bdev;
+ 	sb->bdev = file_bdev(sb->s_bdev_file);
  
  	ret = bch2_sb_realloc(sb, 0);
  	if (ret) {

The following changes since commit d206a76d7d2726f3b096037f2079ce0bd3ba329b:

  Linux 6.8-rc6 (2024-02-25 15:46:06 -0800)

are available in the Git repository at:

  https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-20240312

for you to fetch changes up to 243c934566b7b0f9103201e259f5373ba38126c6:

  bcachefs: reconstruct_alloc cleanup (2024-03-12 02:19:54 -0400)

----------------------------------------------------------------
bcachefs updates for 6.9

 - Subvolume children btree; this is needed for providing a userspace
   interface for walking subvolumes, which will come later
 - Lots of improvements to directory structure checking
 - Improved journal pipelining, significantly improving performance on
   high iodepth write workloads
 - Discard path improvements: the discard path is more efficient, and no
   longer flushes the journal unnecessarily
 - Buffered write path can now avoid taking the inode lock
 - Pull out various library code for use in XFS: time stats,
   mean_and_variance, darray, eytzinger, thread_with_file
 - new mm helper: memalloc_flags_{save|restore}
 - mempool now does kvmalloc mempools

----------------------------------------------------------------
Brian Foster (1):
      bcachefs: fix lost journal buf wakeup due to improved pipelining

Calvin Owens (1):
      bcachefs: Silence gcc warnings about arm arch ABI drift

Colin Ian King (1):
      bcachefs: remove redundant assignment to variable ret

Daniel Hill (1):
      bcachefs: rebalance_status now shows correct units

Darrick J. Wong (13):
      time_stats: report lifetime of the stats object
      time_stats: split stats-with-quantiles into a separate structure
      time_stats: fix struct layout bloat
      time_stats: add larger units
      time_stats: don't print any output if event count is zero
      time_stats: allow custom epoch names
      mean_and_variance: put struct mean_and_variance_weighted on a diet
      time_stats: shrink time_stat_buffer for better alignment
      time_stats: report information in json format
      thread_with_file: allow creation of readonly files
      thread_with_file: fix various printf problems
      thread_with_file: create ops structure for thread_with_stdio
      thread_with_file: allow ioctls against these files

Erick Archer (1):
      bcachefs: Prefer struct_size over open coded arithmetic

Guoyu Ou (1):
      bcachefs: skip invisible entries in empty subvolume checking

Hongbo Li (3):
      bcachefs: fix the error code when mounting with incorrect options.
      bcachefs: avoid returning private error code in bch2_xattr_bcachefs_set
      bcachefs: intercept mountoption value for bool type

Kent Overstreet (116):
      bcachefs: journal_seq_blacklist_add() now handles entries being added out of order
      bcachefs: extent_entry_next_safe()
      bcachefs: no_splitbrain_check option
      bcachefs: fix check_inode_deleted_list()
      bcachefs: Fix journal replay with unreadable btree roots
      bcachefs: Fix degraded mode fsck
      bcachefs: Correctly validate k->u64s in btree node read path
      bcachefs: Set path->uptodate when no node at level
      bcachefs: fix split brain message
      bcachefs: Kill unnecessary wakeups in journal reclaim
      bcachefs: Split out journal workqueue
      bcachefs: Avoid setting j->write_work unnecessarily
      bcachefs: Journal writes should be REQ_SYNC|REQ_META
      bcachefs: Avoid taking journal lock unnecessarily
      bcachefs: fixup for building in userspace
      bcachefs: Improve bch2_dirent_to_text()
      bcachefs: Workqueues should be WQ_HIGHPRI
      bcachefs: bch2_hash_set_snapshot() -> bch2_hash_set_in_snapshot()
      bcachefs: Cleanup bch2_dirent_lookup_trans()
      bcachefs: convert journal replay ptrs to darray
      bcachefs: improve journal entry read fsck error messages
      bcachefs: jset_entry_datetime
      bcachefs: bio per journal buf
      bcachefs: closure per journal buf
      bcachefs: better journal pipelining
      bcachefs: btree_and_journal_iter.trans
      bcachefs: btree node prefetching in check_topology
      bcachefs: Subvolumes may now be renamed
      bcachefs: Switch to uuid_to_fsid()
      bcachefs: Initialize super_block->s_uuid
      bcachefs: move fsck_write_inode() to inode.c
      bcachefs: bump max_active on btree_interior_update_worker
      bcachefs: Kill some -EINVALs
      bcachefs: Factor out check_subvol_dirent()
      bcachefs: factor out check_inode_backpointer()
      mm: introduce memalloc_flags_{save,restore}
      mm: introduce PF_MEMALLOC_NORECLAIM, PF_MEMALLOC_NOWARN
      bcachefs: bch2_inode_insert()
      bcachefs: bch2_lookup() gives better error message on inode not found
      mean and variance: Promote to lib/math
      eytzinger: Promote to include/linux/
      bcachefs: bch2_time_stats_to_seq_buf()
      time_stats: Promote to lib/
      bcache: Convert to lib/time_stats
      time_stats: Kill TIME_STATS_HAVE_QUANTILES
      mempool: kvmalloc pool
      bcachefs: kill kvpmalloc()
      bcachefs: thread_with_stdio: eliminate double buffering
      bcachefs: thread_with_stdio: convert to darray
      bcachefs: thread_with_stdio: kill thread_with_stdio_done()
      bcachefs: thread_with_stdio: fix bch2_stdio_redirect_readline()
      bcachefs: Thread with file documentation
      darray: lift from bcachefs
      thread_with_file: Lift from bcachefs
      thread_with_stdio: Mark completed in ->release()
      kernel/hung_task.c: export sysctl_hung_task_timeout_secs
      thread_with_stdio: suppress hung task warning
      bcachefs: Kill more -EIO error codes
      bcachefs: Check subvol <-> inode pointers in check_subvol()
      bcachefs: Check subvol <-> inode pointers in check_inode()
      bcachefs: check_inode_dirent_inode()
      bcachefs: better log message in lookup_inode_for_snapshot()
      bcachefs: check bi_parent_subvol in check_inode()
      bcachefs: simplify check_dirent_inode_dirent()
      bcachefs: delete duplicated checks in check_dirent_to_subvol()
      bcachefs: check inode->bi_parent_subvol against dirent
      bcachefs: check dirent->d_parent_subvol
      bcachefs: Repair subvol dirents that point to non subvols
      bcachefs: bch_subvolume::parent -> creation_parent
      bcachefs: Fix path where dirent -> subvol missing and we don't fix
      bcachefs: Pass inode bkey to check_path()
      bcachefs: check_path() now prints full inode when reattaching
      bcachefs: Correctly reattach subvolumes
      bcachefs: bch2_btree_bit_mod -> bch2_btree_bit_mod_buffered
      bcachefs: bch2_btree_bit_mod()
      bcachefs: bch_subvolume::fs_path_parent
      bcachefs: BTREE_ID_subvolume_children
      bcachefs: Check for subvolume children when deleting subvolumes
      bcachefs: Pin btree cache in ram for random access in fsck
      bcachefs: Save key_cache_path in peek_slot()
      bcachefs: Track iter->ip_allocated at bch2_trans_copy_iter()
      bcachefs: Use kvzalloc() when dynamically allocating btree paths
      bcachefs: Improve error messages in device remove path
      bcachefs: bch2_print_opts()
      thread_with_file: Fix missing va_end()
      bcachefs: bch2_trigger_alloc() handles state changes better
      bcachefs: bch2_check_subvolume_structure()
      bcachefs: check_path() now only needs to walk up to subvolume root
      bcachefs: more informative write path error message
      bcachefs: Drop redundant btree_path_downgrade()s
      bcachefs: improve bch2_journal_buf_to_text()
      bcachefs: Split out discard fastpath
      bcachefs: Fix journal_buf bitfield accesses
      bcachefs: Add journal.blocked to journal_debug_to_text()
      thread_with_file: add f_ops.flush
      bcachefs: Errcode tracepoint, documentation
      bcachefs: jset_entry for loops declare loop iter
      bcachefs: Rename journal_keys.d -> journal_keys.data
      bcachefs: journal_keys now uses darray helpers
      bcachefs: improve move_gap()
      bcachefs: split out ignore_blacklisted, ignore_not_dirty
      bcachefs: Fix bch2_journal_noflush_seq()
      fs: file_remove_privs_flags()
      bcachefs: Buffered write path now can avoid the inode lock
      bcachefs: Split out bkey_types.h
      bcachefs: copy_(to|from)_user_errcode()
      lib/generic-radix-tree.c: Make nodes more reasonably sized
      bcachefs: fix bch2_journal_buf_to_text()
      bcachefs: Check for writing superblocks with nonsense member seq fields
      bcachefs: Kill unused flags argument to btree_split()
      bcachefs: fix deletion of indirect extents in btree_gc
      bcachefs: Fix order of gc_done passes
      bcachefs: Always flush write buffer in delete_dead_inodes()
      bcachefs: Fix btree key cache coherency during replay
      bcachefs: fix bch_folio_sector padding
      bcachefs: reconstruct_alloc cleanup

Li Zetao (1):
      bcachefs: Fix null-ptr-deref in bch2_fs_alloc()

Lukas Bulwahn (1):
      MAINTAINERS: repair file entries in THREAD WITH FILE

Thomas Bertschinger (1):
      bcachefs: omit alignment attribute on big endian struct bkey

 Documentation/filesystems/bcachefs/errorcodes.rst  |  30 +
 MAINTAINERS                                        |  39 +
 drivers/md/bcache/Kconfig                          |   1 +
 drivers/md/bcache/bcache.h                         |   1 +
 drivers/md/bcache/bset.c                           |   6 +-
 drivers/md/bcache/bset.h                           |   1 +
 drivers/md/bcache/btree.c                          |   6 +-
 drivers/md/bcache/super.c                          |   7 +
 drivers/md/bcache/sysfs.c                          |  25 +-
 drivers/md/bcache/util.c                           |  30 -
 drivers/md/bcache/util.h                           |  52 +-
 fs/bcachefs/Kconfig                                |  11 +-
 fs/bcachefs/Makefile                               |   6 +-
 fs/bcachefs/alloc_background.c                     | 219 +++++-
 fs/bcachefs/alloc_background.h                     |   1 +
 fs/bcachefs/alloc_foreground.c                     |  13 +-
 fs/bcachefs/backpointers.c                         | 143 ++--
 fs/bcachefs/bbpos_types.h                          |   2 +-
 fs/bcachefs/bcachefs.h                             |  29 +-
 fs/bcachefs/bcachefs_format.h                      |  53 +-
 fs/bcachefs/bkey.h                                 | 207 +----
 fs/bcachefs/bkey_types.h                           | 213 ++++++
 fs/bcachefs/bset.c                                 |   2 +-
 fs/bcachefs/btree_cache.c                          |  39 +-
 fs/bcachefs/btree_gc.c                             | 153 ++--
 fs/bcachefs/btree_io.c                             |  30 +-
 fs/bcachefs/btree_iter.c                           |  28 +-
 fs/bcachefs/btree_journal_iter.c                   | 180 +++--
 fs/bcachefs/btree_journal_iter.h                   |  14 +-
 fs/bcachefs/btree_key_cache.c                      |   8 +-
 fs/bcachefs/btree_locking.c                        |   3 +-
 fs/bcachefs/btree_locking.h                        |   2 +-
 fs/bcachefs/btree_types.h                          |  11 +-
 fs/bcachefs/btree_update.c                         |  25 +-
 fs/bcachefs/btree_update.h                         |   3 +-
 fs/bcachefs/btree_update_interior.c                |  91 ++-
 fs/bcachefs/btree_update_interior.h                |   2 +
 fs/bcachefs/btree_write_buffer.c                   |   4 +-
 fs/bcachefs/btree_write_buffer_types.h             |   2 +-
 fs/bcachefs/buckets.c                              |  32 +-
 fs/bcachefs/chardev.c                              |  63 +-
 fs/bcachefs/checksum.c                             |   2 +-
 fs/bcachefs/compress.c                             |  14 +-
 fs/bcachefs/debug.c                                |   6 +-
 fs/bcachefs/dirent.c                               | 143 ++--
 fs/bcachefs/dirent.h                               |   6 +-
 fs/bcachefs/ec.c                                   |   4 +-
 fs/bcachefs/errcode.c                              |  15 +-
 fs/bcachefs/errcode.h                              |  18 +-
 fs/bcachefs/error.c                                |  14 +-
 fs/bcachefs/error.h                                |   2 +-
 fs/bcachefs/extents.h                              |  11 +-
 fs/bcachefs/fifo.h                                 |   4 +-
 fs/bcachefs/fs-common.c                            |  74 +-
 fs/bcachefs/fs-io-buffered.c                       | 149 +++-
 fs/bcachefs/fs-io-pagecache.h                      |   9 +-
 fs/bcachefs/fs.c                                   | 222 ++++--
 fs/bcachefs/fsck.c                                 | 849 ++++++++++++++-------
 fs/bcachefs/fsck.h                                 |   1 +
 fs/bcachefs/inode.c                                |  55 +-
 fs/bcachefs/inode.h                                |  19 +
 fs/bcachefs/io_read.c                              |   6 +-
 fs/bcachefs/io_write.c                             |  20 +-
 fs/bcachefs/journal.c                              | 282 ++++---
 fs/bcachefs/journal.h                              |   7 +-
 fs/bcachefs/journal_io.c                           | 409 +++++-----
 fs/bcachefs/journal_io.h                           |  47 +-
 fs/bcachefs/journal_reclaim.c                      |  29 +-
 fs/bcachefs/journal_sb.c                           |   2 +-
 fs/bcachefs/journal_seq_blacklist.c                |  75 +-
 fs/bcachefs/journal_types.h                        |  36 +-
 fs/bcachefs/lru.c                                  |   7 +-
 fs/bcachefs/migrate.c                              |   8 +-
 fs/bcachefs/nocow_locking.c                        |   2 +-
 fs/bcachefs/opts.c                                 |   8 +-
 fs/bcachefs/opts.h                                 |  10 +
 fs/bcachefs/rebalance.c                            |   4 +-
 fs/bcachefs/recovery.c                             |  88 ++-
 fs/bcachefs/recovery_types.h                       |   2 +
 fs/bcachefs/replicas.c                             |  19 +-
 fs/bcachefs/replicas.h                             |   3 +-
 fs/bcachefs/sb-clean.c                             |  16 -
 fs/bcachefs/sb-downgrade.c                         |  13 +-
 fs/bcachefs/sb-errors_types.h                      |  21 +-
 fs/bcachefs/sb-members.h                           |   2 +-
 fs/bcachefs/str_hash.h                             |  15 +-
 fs/bcachefs/subvolume.c                            | 187 ++++-
 fs/bcachefs/subvolume.h                            |   9 +-
 fs/bcachefs/subvolume_format.h                     |   4 +-
 fs/bcachefs/subvolume_types.h                      |   2 +-
 fs/bcachefs/super-io.c                             |  22 +-
 fs/bcachefs/super-io.h                             |   2 +-
 fs/bcachefs/super.c                                |  97 ++-
 fs/bcachefs/sysfs.c                                |   4 +-
 fs/bcachefs/thread_with_file.c                     | 299 --------
 fs/bcachefs/thread_with_file.h                     |  41 -
 fs/bcachefs/thread_with_file_types.h               |  16 -
 fs/bcachefs/trace.h                                |  19 +
 fs/bcachefs/util.c                                 | 374 +--------
 fs/bcachefs/util.h                                 | 180 +----
 fs/bcachefs/xattr.c                                |   5 +-
 fs/inode.c                                         |   7 +-
 {fs/bcachefs => include/linux}/darray.h            |  59 +-
 include/linux/darray_types.h                       |  22 +
 {fs/bcachefs => include/linux}/eytzinger.h         |  58 +-
 include/linux/fs.h                                 |   1 +
 include/linux/generic-radix-tree.h                 |  29 +-
 {fs/bcachefs => include/linux}/mean_and_variance.h |  14 +-
 include/linux/mempool.h                            |  13 +
 include/linux/sched.h                              |   4 +-
 include/linux/sched/mm.h                           |  60 +-
 include/linux/thread_with_file.h                   |  79 ++
 include/linux/thread_with_file_types.h             |  25 +
 include/linux/time_stats.h                         | 167 ++++
 kernel/hung_task.c                                 |   1 +
 lib/Kconfig                                        |   7 +
 lib/Kconfig.debug                                  |   9 +
 lib/Makefile                                       |   5 +-
 {fs/bcachefs => lib}/darray.c                      |  12 +-
 lib/generic-radix-tree.c                           |  35 +-
 lib/math/Kconfig                                   |   3 +
 lib/math/Makefile                                  |   2 +
 {fs/bcachefs => lib/math}/mean_and_variance.c      |  31 +-
 {fs/bcachefs => lib/math}/mean_and_variance_test.c |  83 +-
 lib/sort.c                                         |  89 +++
 lib/thread_with_file.c                             | 454 +++++++++++
 lib/time_stats.c                                   | 373 +++++++++
 mm/mempool.c                                       |  13 +
 128 files changed, 4583 insertions(+), 2868 deletions(-)
 create mode 100644 Documentation/filesystems/bcachefs/errorcodes.rst
 create mode 100644 fs/bcachefs/bkey_types.h
 delete mode 100644 fs/bcachefs/thread_with_file.c
 delete mode 100644 fs/bcachefs/thread_with_file.h
 delete mode 100644 fs/bcachefs/thread_with_file_types.h
 rename {fs/bcachefs => include/linux}/darray.h (66%)
 create mode 100644 include/linux/darray_types.h
 rename {fs/bcachefs => include/linux}/eytzinger.h (77%)
 rename {fs/bcachefs => include/linux}/mean_and_variance.h (96%)
 create mode 100644 include/linux/thread_with_file.h
 create mode 100644 include/linux/thread_with_file_types.h
 create mode 100644 include/linux/time_stats.h
 rename {fs/bcachefs => lib}/darray.c (56%)
 rename {fs/bcachefs => lib/math}/mean_and_variance.c (90%)
 rename {fs/bcachefs => lib/math}/mean_and_variance_test.c (78%)
 create mode 100644 lib/thread_with_file.c
 create mode 100644 lib/time_stats.c




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux