Messages in this thread | | | Subject | Re: [PATCH] block: fix bounce_end_io | From | Jens Axboe <> | Date | Thu, 17 Sep 2015 10:07:29 -0600 |
| |
On 09/17/2015 10:06 AM, Ming Lei wrote: > When bio bounce is involved, one new bio and its biovecs are > cloned from the comming bio, which can be one fast-cloned bio > from upper layer(such as dm). > > So it is obviously wrong to assume the start index of the coming( > original) bio's io vector is zero, which can be any value between > 0 and (bi_max_vecs - 1), especially in case of bio split. > > This patch fixes Fedora's booting oops on i386, often with the > following kernel log together: > >> [ 9.026738] systemd[1]: Switching root. >> [ 9.036467] systemd-journald[149]: Received SIGTERM from PID 1 >> (systemd). >> [ 9.082262] BUG: Bad page state in process kworker/u5:1 pfn:372ac >> [ 9.083989] page:f3d32ae0 count:0 mapcount:0 mapping:f2252178 >> index:0x16a >> [ 9.085755] flags: 0x40020021(locked|lru|mappedtodisk) >> [ 9.087284] page dumped because: page still charged to cgroup >> [ 9.088772] bad because of flags: >> [ 9.089731] flags: 0x21(locked|lru) >> [ 9.090818] page->mem_cgroup:f2c3e400
Applied, thanks Ming - and thanks Adam for testing it.
-- Jens Axboe
| |