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.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1602299

Title:
  bcache is unstable on ppc64el

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1602299/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to