1. 10 Jul, 2024 8 commits
  2. 02 Jul, 2024 1 commit
  3. 29 Jun, 2024 6 commits
  4. 28 Jun, 2024 5 commits
  5. 26 Jun, 2024 1 commit
  6. 25 Jun, 2024 3 commits
  7. 23 Jun, 2024 8 commits
  8. 22 Jun, 2024 1 commit
  9. 21 Jun, 2024 7 commits
    • Youling Tang's avatar
      bcachefs: Move the ei_flags setting to after initialization · bd4da046
      Youling Tang authored
      `inode->ei_flags` setting and cleaning should be done after initialization,
      otherwise the operation is invalid.
      
      Fixes: 9ca4853b ("bcachefs: Fix quota support for snapshots")
      Signed-off-by: default avatarYouling Tang <tangyouling@kylinos.cn>
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      bd4da046
    • Kent Overstreet's avatar
      bcachefs: Fix a UAF after write_super() · 2fe79ce7
      Kent Overstreet authored
      write_super() may reallocate the superblock buffer - but
      bch_sb_field_ext was referencing it; don't use it after the write_super
      call.
      
      Reported-by: syzbot+8992fc10a192067b8d8a@syzkaller.appspotmail.com
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      2fe79ce7
    • Kent Overstreet's avatar
      bcachefs: Use bch2_print_string_as_lines for long err · e6b3a655
      Kent Overstreet authored
      printk strings get truncated to 1024 bytes; if we have a long error
      message (journal debug info) we need to use a helper.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      e6b3a655
    • Kent Overstreet's avatar
      bcachefs: Fix I_NEW warning in race path in bch2_inode_insert() · dd908648
      Kent Overstreet authored
      discard_new_inode() is the correct interface for tearing down an indoe
      that was fully created but not made visible to other threads, but it
      expects I_NEW to be set, which we don't use.
      
      Reported-by: https://github.com/koverstreet/bcachefs/issues/690
      Fixes: bcachefs: Fix race path in bch2_inode_insert()
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      dd908648
    • Kent Overstreet's avatar
    • Kent Overstreet's avatar
      bcachefs: Fix missing alloc_data_type_set() · f648b6c1
      Kent Overstreet authored
      Incorrect bucket state transition in the discard path; when incrementing
      a bucket's generation number that had already been discarded, we were
      forgetting to check if it should be need_gc_gens, not free.
      
      This was caught by the .invalid checks in the transaction commit path,
      causing us to go emergency read only.
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      f648b6c1
    • Kent Overstreet's avatar
      closures: Change BUG_ON() to WARN_ON() · 339b84ab
      Kent Overstreet authored
      If a BUG_ON() can be hit in the wild, it shouldn't be a BUG_ON()
      
      For reference, this has popped up once in the CI, and we'll need more
      info to debug it:
      
      03240 ------------[ cut here ]------------
      03240 kernel BUG at lib/closure.c:21!
      03240 kernel BUG at lib/closure.c:21!
      03240 Internal error: Oops - BUG: 00000000f2000800 [#1] SMP
      03240 Modules linked in:
      03240 CPU: 15 PID: 40534 Comm: kworker/u80:1 Not tainted 6.10.0-rc4-ktest-ga56da697 #25570
      03240 Hardware name: linux,dummy-virt (DT)
      03240 Workqueue: btree_update btree_interior_update_work
      03240 pstate: 00001005 (nzcv daif -PAN -UAO -TCO -DIT +SSBS BTYPE=--)
      03240 pc : closure_put+0x224/0x2a0
      03240 lr : closure_put+0x24/0x2a0
      03240 sp : ffff0000d12071c0
      03240 x29: ffff0000d12071c0 x28: dfff800000000000 x27: ffff0000d1207360
      03240 x26: 0000000000000040 x25: 0000000000000040 x24: 0000000000000040
      03240 x23: ffff0000c1f20180 x22: 0000000000000000 x21: ffff0000c1f20168
      03240 x20: 0000000040000000 x19: ffff0000c1f20140 x18: 0000000000000001
      03240 x17: 0000000000003aa0 x16: 0000000000003ad0 x15: 1fffe0001c326974
      03240 x14: 0000000000000a1e x13: 0000000000000000 x12: 1fffe000183e402d
      03240 x11: ffff6000183e402d x10: dfff800000000000 x9 : ffff6000183e402e
      03240 x8 : 0000000000000001 x7 : 00009fffe7c1bfd3 x6 : ffff0000c1f2016b
      03240 x5 : ffff0000c1f20168 x4 : ffff6000183e402e x3 : ffff800081391954
      03240 x2 : 0000000000000001 x1 : 0000000000000000 x0 : 00000000a8000000
      03240 Call trace:
      03240  closure_put+0x224/0x2a0
      03240  bch2_check_for_deadlock+0x910/0x1028
      03240  bch2_six_check_for_deadlock+0x1c/0x30
      03240  six_lock_slowpath.isra.0+0x29c/0xed0
      03240  six_lock_ip_waiter+0xa8/0xf8
      03240  __bch2_btree_node_lock_write+0x14c/0x298
      03240  bch2_trans_lock_write+0x6d4/0xb10
      03240  __bch2_trans_commit+0x135c/0x5520
      03240  btree_interior_update_work+0x1248/0x1c10
      03240  process_scheduled_works+0x53c/0xd90
      03240  worker_thread+0x370/0x8c8
      03240  kthread+0x258/0x2e8
      03240  ret_from_fork+0x10/0x20
      03240 Code: aa1303e0 d63f0020 a94363f7 17ffff8c (d4210000)
      03240 ---[ end trace 0000000000000000 ]---
      03240 Kernel panic - not syncing: Oops - BUG: Fatal exception
      03240 SMP: stopping secondary CPUs
      03241 SMP: failed to stop secondary CPUs 13,15
      03241 Kernel Offset: disabled
      03241 CPU features: 0x00,00000003,80000008,4240500b
      03241 Memory Limit: none
      03241 ---[ end Kernel panic - not syncing: Oops - BUG: Fatal exception ]---
      03246 ========= FAILED TIMEOUT copygc_torture_no_checksum in 7200s
      Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
      339b84ab