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
>
>
next prev parent 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