public inbox for linux-bcachefs@vger.kernel.org
 help / color / mirror / Atom feed
From: Brian Foster <bfoster@redhat.com>
To: Su Yue <glass.su@suse.com>
Cc: linux-bcachefs@vger.kernel.org, l@damenly.org
Subject: Re: [PATCH] bcachefs: kvfree bch_fs::snapshots in bch2_fs_snapshots_exit
Date: Tue, 16 Jan 2024 08:51:48 -0500	[thread overview]
Message-ID: <ZaaJ9H1e6ZctI2VH@bfoster> (raw)
In-Reply-To: <20240116110537.1124476-1-glass.su@suse.com>

On Tue, Jan 16, 2024 at 07:05:37PM +0800, Su Yue wrote:
> bch_fs::snapshots is allocated by kvzalloc in __snapshot_t_mut.
> It should be freed by kvfree not kfree.
> Or umount will triger:
> 
> [  406.829178 ] BUG: unable to handle page fault for address: ffffe7b487148008
> [  406.830676 ] #PF: supervisor read access in kernel mode
> [  406.831643 ] #PF: error_code(0x0000) - not-present page
> [  406.832487 ] PGD 0 P4D 0
> [  406.832898 ] Oops: 0000 [#1] PREEMPT SMP PTI
> [  406.833512 ] CPU: 2 PID: 1754 Comm: umount Kdump: loaded Tainted: G           OE      6.7.0-rc7-custom+ #90
> [  406.834746 ] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.16.3-1-1 04/01/2014
> [  406.835796 ] RIP: 0010:kfree+0x62/0x140
> [  406.836197 ] Code: 80 48 01 d8 0f 82 e9 00 00 00 48 c7 c2 00 00 00 80 48 2b 15 78 9f 1f 01 48 01 d0 48 c1 e8 0c 48 c1 e0 06 48 03 05 56 9f 1f 01 <48> 8b 50 08 48 89 c7 f6 c2 01 0f 85 b0 00 00 00 66 90 48 8b 07 f6
> [  406.837810 ] RSP: 0018:ffffb9d641607e48 EFLAGS: 00010286
> [  406.838213 ] RAX: ffffe7b487148000 RBX: ffffb9d645200000 RCX: ffffb9d641607dc4
> [  406.838738 ] RDX: 000065bb00000000 RSI: ffffffffc0d88b84 RDI: ffffb9d645200000
> [  406.839217 ] RBP: ffff9a4625d00068 R08: 0000000000000001 R09: 0000000000000001
> [  406.839650 ] R10: 0000000000000001 R11: 000000000000001f R12: ffff9a4625d4da80
> [  406.840055 ] R13: ffff9a4625d00000 R14: ffffffffc0e2eb20 R15: 0000000000000000
> [  406.840451 ] FS:  00007f0a264ffb80(0000) GS:ffff9a4e2d500000(0000) knlGS:0000000000000000
> [  406.840851 ] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  406.841125 ] CR2: ffffe7b487148008 CR3: 000000018c4d2000 CR4: 00000000000006f0
> [  406.841464 ] Call Trace:
> [  406.841583 ]  <TASK>
> [  406.841682 ]  ? __die+0x1f/0x70
> [  406.841828 ]  ? page_fault_oops+0x159/0x470
> [  406.842014 ]  ? fixup_exception+0x22/0x310
> [  406.842198 ]  ? exc_page_fault+0x1ed/0x200
> [  406.842382 ]  ? asm_exc_page_fault+0x22/0x30
> [  406.842574 ]  ? bch2_fs_release+0x54/0x280 [bcachefs]
> [  406.842842 ]  ? kfree+0x62/0x140
> [  406.842988 ]  ? kfree+0x104/0x140
> [  406.843138 ]  bch2_fs_release+0x54/0x280 [bcachefs]
> [  406.843390 ]  kobject_put+0xb7/0x170
> [  406.843552 ]  deactivate_locked_super+0x2f/0xa0
> [  406.843756 ]  cleanup_mnt+0xba/0x150
> [  406.843917 ]  task_work_run+0x59/0xa0
> [  406.844083 ]  exit_to_user_mode_prepare+0x197/0x1a0
> [  406.844302 ]  syscall_exit_to_user_mode+0x16/0x40
> [  406.844510 ]  do_syscall_64+0x4e/0xf0
> [  406.844675 ]  entry_SYSCALL_64_after_hwframe+0x6e/0x76
> [  406.844907 ] RIP: 0033:0x7f0a2664e4fb
> 
> Signed-off-by: Su Yue <glass.su@suse.com>
> ---

Reviewed-by: Brian Foster <bfoster@redhat.com>

>  fs/bcachefs/snapshot.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/bcachefs/snapshot.c b/fs/bcachefs/snapshot.c
> index 56af937523ff..cdcff4e5ae5c 100644
> --- a/fs/bcachefs/snapshot.c
> +++ b/fs/bcachefs/snapshot.c
> @@ -1681,5 +1681,5 @@ int bch2_snapshots_read(struct bch_fs *c)
>  
>  void bch2_fs_snapshots_exit(struct bch_fs *c)
>  {
> -	kfree(rcu_dereference_protected(c->snapshots, true));
> +	kvfree(rcu_dereference_protected(c->snapshots, true));
>  }
> -- 
> 2.43.0
> 
> 


  reply	other threads:[~2024-01-16 13:50 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-16 11:05 [PATCH] bcachefs: kvfree bch_fs::snapshots in bch2_fs_snapshots_exit Su Yue
2024-01-16 13:51 ` Brian Foster [this message]
2024-01-16 17:08 ` Kent Overstreet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZaaJ9H1e6ZctI2VH@bfoster \
    --to=bfoster@redhat.com \
    --cc=glass.su@suse.com \
    --cc=l@damenly.org \
    --cc=linux-bcachefs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox