On 1/31/18 11:13 AM, Jerome Glisse wrote: > That's one solution, another one is to have struct bio_vec store > buffer_head pointer and not page pointer, from buffer_head you can > find struct page and using buffer_head and struct page pointer you > can walk the KSM rmap_item chain to find back the mapping. This > would be needed on I/O error for pending writeback of a newly write > protected page, so one can argue that the overhead of the chain lookup > to find back the mapping against which to report IO error, is an > acceptable cost. Ehm nope. bio_vec is a generic container for pages, requiring buffer_heads to be able to do IO would be insanity. -- Jens Axboe