1. 05 Nov, 2023 26 commits
  2. 04 Nov, 2023 4 commits
  3. 02 Nov, 2023 10 commits
    • Kent Overstreet's avatar
      bcachefs: Skip deleted members in member_to_text() · dc7a15fb
      Kent Overstreet authored
      This fixes show-super output - we shouldn't be printing members that
      have been deleted.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      dc7a15fb
    • Kent Overstreet's avatar
      bcachefs: Fix an integer overflow · df94cb2e
      Kent Overstreet authored
      Fixes:
      
      bcachefs (e7fdc10e-54a3-49d9-bd0c-390370889d84): disk usage increased 4294967296 more than 2823707312 sectors reserved)
      transaction updates for __bchfs_fallocate journal seq 467859
        update: btree=extents cached=0 bch2_trans_update+0x4e8/0x540
          old u64s 5 type deleted 536925940:3559337304:4294967283 len 0 ver 0
          new u64s 6 type reservation 536925940:3559337304:4294967283 len 3559337304 ver 0: generation 0 replicas 2
        update: btree=inodes cached=1 bch2_extent_update_i_size_sectors+0x305/0x3b0
          old u64s 19 type inode_v3 0:536925940:4294967283 len 0 ver 0: mode 100600 flags 15300000 journal_seq 467859 bi_size 0 bi_sectors 0 bi_version 0 bi_atime 40905301656446 bi_ctime 40905301656446 bi_mtime 40905301656446 bi_otime 40905301656446 bi_uid 0 bi_gid 0 bi_nlink 0 bi_generation 0 bi_dev 0 bi_data_checksum 0 bi_compression 0 bi_project 0 bi_background_compression 0 bi_data_replicas 0 bi_promote_target 0 bi_foreground_target 0 bi_background_target 0 bi_erasure_code 0 bi_fields_set 0 bi_dir 1879048193 bi_dir_offset 3384856038735393365 bi_subvol 0 bi_parent_subvol 0 bi_nocow 0
          new u64s 19 type inode_v3 0:536925940:4294967283 len 0 ver 0: mode 100600 flags 15300000 journal_seq 467859 bi_size 0 bi_sectors 3559337304 bi_version 0 bi_atime 40905301656446 bi_ctime 40905301656446 bi_mtime 40905301656446 bi_otime 40905301656446 bi_uid 0 bi_gid 0 bi_nlink 0 bi_generation 0 bi_dev 0 bi_data_checksum 0 bi_compression 0 bi_project 0 bi_background_compression 0 bi_data_replicas 0 bi_promote_target 0 bi_foreground_target 0 bi_background_target 0 bi_erasure_code 0 bi_fields_set 0 bi_dir 1879048193 bi_dir_offset 3384856038735393365 bi_subvol 0 bi_parent_subvol 0 bi_nocow 0
      
      Kernel panic - not syncing: bcachefs (e7fdc10e-54a3-49d9-bd0c-390370889d84): panic after error
      CPU: 4 PID: 5154 Comm: rsync Not tainted 6.5.9-gateway-gca1614174cc0-dirty #1
      Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./X570 Phantom Gaming 4, BIOS P4.20 08/02/2021
      Call Trace:
       <TASK>
       dump_stack_lvl+0x5a/0x90
       panic+0x105/0x300
       ? console_unlock+0xf1/0x130
       ? bch2_printbuf_exit+0x16/0x30
       ? srso_return_thunk+0x5/0x10
       bch2_inconsistent_error+0x6f/0x80
       bch2_trans_fs_usage_apply+0x279/0x3d0
       __bch2_trans_commit+0x112a/0x1df0
       ? bch2_extent_update+0x13a/0x1d0
       bch2_extent_update+0x13a/0x1d0
       bch2_extent_fallocate+0x58e/0x740
       bch2_fallocate_dispatch+0xb7c/0x1030
       ? do_filp_open+0xa0/0x140
       vfs_fallocate+0x18e/0x1d0
       __x64_sys_fallocate+0x46/0x70
       do_syscall_64+0x48/0xa0
       ? exit_to_user_mode_prepare+0x4d/0xa0
       entry_SYSCALL_64_after_hwframe+0x6e/0xd8
      RIP: 0033:0x7fc85d91bbb3
      Code: 64 89 02 b8 ff ff ff ff eb bd 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 80 3d 31 da 0d 00 00 49 89 ca 74 14 b8 1d 01 00 00 0f 05 <48> 3d 00 f0 ff ff 77 5d c3 0f 1f 40 00 48 83 ec 28 48 89 54 24 10
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      df94cb2e
    • Kent Overstreet's avatar
      bcachefs: Don't downgrade locks on transaction restart · be9e782d
      Kent Overstreet authored
      We should only be downgrading locks on success - otherwise, our
      transaction restarts won't be getting the correct locks and we'll
      livelock.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      be9e782d
    • Kent Overstreet's avatar
    • Kent Overstreet's avatar
      bcachefs: Fix error path in bch2_replicas_gc_end() · 85103d15
      Kent Overstreet authored
      We were dropping a lock we hadn't taken when entering with an error.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      85103d15
    • Kent Overstreet's avatar
      bcachefs: Enumerate fsck errors · b65db750
      Kent Overstreet authored
      This patch adds a superblock error counter for every distinct fsck
      error; this means that when analyzing filesystems out in the wild we'll
      be able to see what sorts of inconsistencies are being found and repair,
      and hence what bugs to look for.
      
      Errors validating bkeys are not yet considered distinct fsck errors, but
      this patch adds a new helper, bkey_fsck_err(), in order to add distinct
      error types for them as well.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      b65db750
    • Kent Overstreet's avatar
      bcachefs: bch_sb_field_errors · f5d26fa3
      Kent Overstreet authored
      Add a new superblock section to keep counts of errors seen since
      filesystem creation: we'll be addingcounters for every distinct fsck
      error.
      
      The new superblock section has entries of the for [ id, count,
      time_of_last_error ]; this is intended to let us see what errors are
      occuring - and getting fixed - via show-super output.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      f5d26fa3
    • Kent Overstreet's avatar
      bcachefs: Add IO error counts to bch_member · 94119eeb
      Kent Overstreet authored
      We now track IO errors per device since filesystem creation.
      
      IO error counts can be viewed in sysfs, or with the 'bcachefs
      show-super' command.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      94119eeb
    • Kent Overstreet's avatar
      5394fe94
    • Kent Overstreet's avatar
      bcachefs: Fix a kasan splat in bch2_dev_add() · e8484348
      Kent Overstreet authored
      This fixes a use after free - mi is dangling after the resize call.
      
      Additionally, resizing the device's member info section was useless - we
      were attempting to preallocate the space required before adding it to
      the filesystem superblock, but there's other sections that we should
      have been preallocating as well for that to work.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      e8484348