Go to file
Linus Torvalds ff0905bbf9 bcachefs updates for 6.16, part 2
- More stack usage improvements (~600 bytes).
 
 - Define CLASS()es for some commonly used types, and convert most
   rcu_read_lock() uses to the new lock guards
 
 - New introspection:
   - Superblock error counters are now available in sysfs: previously,
     they were only visible with 'show-super', which doesn't provide a
     live view
   - New tracepoint, error_throw(), which is called any time we return an
     error and start to unwind
 
 - Repair
   - check_fix_ptrs() can now repair btree node roots
   - We can now repair when we've somehow ended up with the journal using
     a superblock bucket
 
 - Revert some leftovers from the aborted directory i_size feature, and
   add repair code: some userspace programs (e.g. sshfs) were getting
   confused.
 
 It seems in 6.15 there's a bug where i_nlink on the vfs inode has been
 getting incorrectly set to 0, with some unfortunate results;
 list_journal analysis showed bch2_inode_rm() being called (by
 bch2_evict_inode()) when it clearly should not have been.
 
 - bch2_inode_rm() now runs "should we be deleting this inode?" checks
   that were previously only run when deleting unlinked inodes in
   recovery.
 
 - check_subvol() was treating a dangling subvol (pointing to a missing
   root inode) like a dangling dirent, and deleting it. This was the
   really unfortunate one: check_subvol() will now recreate the root
   inode if necessary.
 
 This took longer to debug than it should have, and we lost several
 filesystems unnecessarily, becuase users have been ignoring the release
 notes and blindly running 'fsck -y'. Debugging required reconstructing
 what happened through analyzing the journal, when ideally someone would
 have noticed 'hey, fsck is asking me if I want to repair this: it
 usually doesn't, maybe I should run this in dry run mode and check
 what's going on?'.
 
 As a reminder, fsck errors are being marked as autofix once we've
 verified, in real world usage, that they're working correctly; blindly
 running 'fsck -y' on an experimental filesystem is playing with fire.
 
 Up to this incident we've had an excellent track record of not losing
 data, so let's try to learn from this one.
 
 This is a community effort, I wouldn't be able to get this done without
 the help of all the people QAing and providing excellent bug reports and
 feedback based on real world usage. But please don't ignore advice and
 expect me to pick up the pieces.
 
 If an error isn't marked as autofix, and it /is/ happening in the wild,
 that's also something I need to know about so we can check it out and
 add it to the autofix list if repair looks good. I haven't been getting
 those reports, and I should be; since we don't have any sort of
 telemetry yet I am absolutely dependent on user reports.
 
 Now I'll be spending the weekend working on new repair code to see if I
 can get a filesystem back for a user who didn't have backups.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEKnAFLkS8Qha+jvQrE6szbY3KbnYFAmhAuL0ACgkQE6szbY3K
 bnZlCg/+Pu2TgWBbkwrmHgKH9v4K3pwQRREXSj0TlbWQp9bK00zEBrmdEfTZKgUC
 q5nAAa6zCs0w/A9TFA7t1W/3+JY28ENhoArKFWemLhFZ2qEEXTZlVHvqyHOyuPBf
 Loe+hQO8qgWJm6KO9VMCT1pEupslQLRlhI8GhbPPcxPvYXVjmTne7KCanhjeSEx5
 TLaOiMn7jr+qPeLZ7xSMaaUTbH2SASjwl2E9/4kG6VqaTTF2MnPNwrdJI0exjyvs
 QRaUvYbwBBTe/ru5ddmJuWj+61awKS87ANg+rkO2FWpOrai2HfgHd6o+zge/IR2Z
 /Cfarv1SSd1+0caVaGUAzhnoVhOpY1FU4emJwVvcwnBXeXdGIb/kpaw+Lxm7fr+U
 J6EnqgUoBsBWBCWgvUxlNHVeJ6wBdVNtDlTHabaH8RSCJZjgjg2JaSQM/v9VPLNa
 6jTy3rhkPo50BJBb/F/AZmrobWXR2MkgID3iPEMcpjEyLaRZvW9FPqMFIxKQrUfB
 XGDU4dAu3C+Q9i1KDkFIvIG3e7z9nSmv6np4O57CgrmrmmCpRUz7Yy0yhqNs36/H
 WhLh/Pjb9gupdFK0TwFiEEG3wfnmXlde2c8IfrXXzKSKPIZ0T/RnLZapS7i94c2E
 DumhLYjNjSCiciQZh4eLK0bKx0NETUG79eLUTz5Gi3Pc02E0pU8=
 =ZGDn
 -----END PGP SIGNATURE-----

Merge tag 'bcachefs-2025-06-04' of git://evilpiepirate.org/bcachefs

Pull more bcachefs updates from Kent Overstreet:
 "More bcachefs updates:

   - More stack usage improvements (~600 bytes)

   - Define CLASS()es for some commonly used types, and convert most
     rcu_read_lock() uses to the new lock guards

   - New introspection:
       - Superblock error counters are now available in sysfs:
         previously, they were only visible with 'show-super', which
         doesn't provide a live view
       - New tracepoint, error_throw(), which is called any time we
         return an error and start to unwind

   - Repair
       - check_fix_ptrs() can now repair btree node roots
       - We can now repair when we've somehow ended up with the journal
         using a superblock bucket

   - Revert some leftovers from the aborted directory i_size feature,
     and add repair code: some userspace programs (e.g. sshfs) were
     getting confused

  It seems in 6.15 there's a bug where i_nlink on the vfs inode has been
  getting incorrectly set to 0, with some unfortunate results;
  list_journal analysis showed bch2_inode_rm() being called (by
  bch2_evict_inode()) when it clearly should not have been.

   - bch2_inode_rm() now runs "should we be deleting this inode?" checks
     that were previously only run when deleting unlinked inodes in
     recovery

   - check_subvol() was treating a dangling subvol (pointing to a
     missing root inode) like a dangling dirent, and deleting it. This
     was the really unfortunate one: check_subvol() will now recreate
     the root inode if necessary

  This took longer to debug than it should have, and we lost several
  filesystems unnecessarily, because users have been ignoring the
  release notes and blindly running 'fsck -y'. Debugging required
  reconstructing what happened through analyzing the journal, when
  ideally someone would have noticed 'hey, fsck is asking me if I want
  to repair this: it usually doesn't, maybe I should run this in dry run
  mode and check what's going on?'

  As a reminder, fsck errors are being marked as autofix once we've
  verified, in real world usage, that they're working correctly; blindly
  running 'fsck -y' on an experimental filesystem is playing with fire

  Up to this incident we've had an excellent track record of not losing
  data, so let's try to learn from this one

  This is a community effort, I wouldn't be able to get this done
  without the help of all the people QAing and providing excellent bug
  reports and feedback based on real world usage. But please don't
  ignore advice and expect me to pick up the pieces

  If an error isn't marked as autofix, and it /is/ happening in the
  wild, that's also something I need to know about so we can check it
  out and add it to the autofix list if repair looks good. I haven't
  been getting those reports, and I should be; since we don't have any
  sort of telemetry yet I am absolutely dependent on user reports

  Now I'll be spending the weekend working on new repair code to see if
  I can get a filesystem back for a user who didn't have backups"

* tag 'bcachefs-2025-06-04' of git://evilpiepirate.org/bcachefs: (69 commits)
  bcachefs: add cond_resched() to handle_overwrites()
  bcachefs: Make journal read log message a bit quieter
  bcachefs: Fix subvol to missing root repair
  bcachefs: Run may_delete_deleted_inode() checks in bch2_inode_rm()
  bcachefs: delete dead code from may_delete_deleted_inode()
  bcachefs: Add flags to subvolume_to_text()
  bcachefs: Fix oops in btree_node_seq_matches()
  bcachefs: Fix dirent_casefold_mismatch repair
  bcachefs: Fix bch2_fsck_rename_dirent() for casefold
  bcachefs: Redo bch2_dirent_init_name()
  bcachefs: Fix -Wc23-extensions in bch2_check_dirents()
  bcachefs: Run check_dirents second time if required
  bcachefs: Run snapshot deletion out of system_long_wq
  bcachefs: Make check_key_has_snapshot safer
  bcachefs: BCH_RECOVERY_PASS_NO_RATELIMIT
  bcachefs: bch2_require_recovery_pass()
  bcachefs: bch_err_throw()
  bcachefs: Repair code for directory i_size
  bcachefs: Kill un-reverted directory i_size code
  bcachefs: Delete redundant fsck_err()
  ...
2025-06-04 19:14:24 -07:00
Documentation pci-v6.16-changes 2025-06-04 11:26:17 -07:00
LICENSES
arch pci-v6.16-changes 2025-06-04 11:26:17 -07:00
block - dm: better error handling when reloading a table 2025-06-03 15:54:46 -07:00
certs
crypto
drivers pci-v6.16-changes 2025-06-04 11:26:17 -07:00
fs bcachefs updates for 6.16, part 2 2025-06-04 19:14:24 -07:00
include pci-v6.16-changes 2025-06-04 11:26:17 -07:00
init
io_uring
ipc
kernel sched_ext: Fixes for v6.16-rc1 2025-06-04 12:07:16 -07:00
lib bitmap-for-6.16 2025-06-03 07:39:23 -07:00
mm slab updates for 6.16 2025-06-04 08:59:59 -07:00
net NFS Clent Updates for Linux 6.16 2025-06-03 16:13:32 -07:00
rust
samples
scripts
security
sound
tools perf tools improvements and fixes for Linux v6.16: 2025-06-03 15:11:44 -07:00
usr
virt
.clang-format
.clippy.toml
.cocciconfig
.editorconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap pci-v6.16-changes 2025-06-04 11:26:17 -07:00
.pylintrc
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS pci-v6.16-changes 2025-06-04 11:26:17 -07:00
Makefile
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 reStructuredText 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.