Hi, Recently we got a strange bug report that, one 32bit systems like armv6 or non-64bit x86, certain large btrfs can't be mounted.
It turns out that, since page->index is just unsigned long, and on 32bit systemts, that can just be 32bit. And when filesystems is utilizing any page offset over 4T, page->index get truncated, causing various problems. This is especially a big problem for btrfs, as btrfs uses its internal address space, which is from 0 to U64_MAX, but still sometimes relies on page->index, just like most filesystems. If a metadata is at or beyond 4T boundary (which is not rare, even with small btrfs, as btrfs can related its chunks to much higher bytenr than device boundary), then page->index will be truncated and may even conflicts with existing pages. I'm wonder if this is a known problem, and if so is there any plan to fix? If not a known one, does it mean we have to make page->index u64 to fix it? (this is definitely not going to be easy) Thanks, Qu