Re: [PATCH V4] raid1: ensure write behind bio has less than BIO_MAX_VECS sectors
From: Guoqing Jiang <hidden>
Date: 2021-08-25 00:44:28
Also in:
linux-block
On 8/25/21 5:55 AM, Song Liu wrote:
On Mon, Aug 23, 2021 at 6:17 PM Guoqing Jiang [off-list ref] wrote:quoted
From: Guoqing Jiang <redacted> We can't split write behind bio with more than BIO_MAX_VECS sectors, otherwise the below call trace was triggered because we could allocate oversized write behind bio later. [ 8.097936] bvec_alloc+0x90/0xc0 [ 8.098934] bio_alloc_bioset+0x1b3/0x260 [ 8.099959] raid1_make_request+0x9ce/0xc50 [raid1] [ 8.100988] ? __bio_clone_fast+0xa8/0xe0 [ 8.102008] md_handle_request+0x158/0x1d0 [md_mod] [ 8.103050] md_submit_bio+0xcd/0x110 [md_mod] [ 8.104084] submit_bio_noacct+0x139/0x530 [ 8.105127] submit_bio+0x78/0x1d0 [ 8.106163] ext4_io_submit+0x48/0x60 [ext4] [ 8.107242] ext4_writepages+0x652/0x1170 [ext4] [ 8.108300] ? do_writepages+0x41/0x100 [ 8.109338] ? __ext4_mark_inode_dirty+0x240/0x240 [ext4] [ 8.110406] do_writepages+0x41/0x100 [ 8.111450] __filemap_fdatawrite_range+0xc5/0x100 [ 8.112513] file_write_and_wait_range+0x61/0xb0 [ 8.113564] ext4_sync_file+0x73/0x370 [ext4] [ 8.114607] __x64_sys_fsync+0x33/0x60 [ 8.115635] do_syscall_64+0x33/0x40 [ 8.116670] entry_SYSCALL_64_after_hwframe+0x44/0xae Thanks for the comment from Christoph. [1]. https://bugs.archlinux.org/task/70992 Reported-by: Jens Stutte <redacted> Tested-by: Jens Stutte <redacted> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Guoqing Jiang <redacted>I am confused. Which tree does this apply to?
Sorry, I forgot to mention it in this version (actually it is v4). It depends on commit 018eca456c4b4dca56aaf1ec27f309c74d0fe246 in block tree for-next branch, so it would be better to be picked by block tree for now to avoid compile issue, or after you rebase md tree from block tree with that commit included. Thanks, Guoqing