Comment 7 for bug 1602299

Revision history for this message
Stefan Bader (smb) wrote :

So I believe the problem is the hackish way to acquire buffer pages for internal biovec structures. This is done by taking a reference on the page which is returned by __bread() in read_super(). With 4k pages and reading 4k from sector 1 bh->b_data will always be the start of a page.
But with 64k pages I can see that bh->b_data is at offset 4k from the start of the page. This will definitively result in inconsistent data written as __write_super overlays the sb data from the page start and only updates some fields. It could be even worse if the page returned by __bread() is actually shared between other buffer_heads in case the requested read size is only a fraction of a page... but I do not know that for sure.