On Tue, Aug 31, 2010 at 05:50:06PM -0500, Mike Gao wrote:
> What kind of logic there could be?
> I notice that in old version, if page has no buffer in writepage, then xfs
> will create a empty buffer and attach to page. This logic there at least
> untill 2.6.33. But now xfs need this never happens (assert) when coming to
> writepage. But I guess, when use mmap, there is no buffer attach to page
> because it operates on page directly on kernel. xfs should create buffer
> before submit bio. There must be sth I don't know. Maybe sbd can help me
mmap() pages used to be special because they weren't tagged
correctly when the page was dirtied. Nowdays the ->page_mkwrite
interface captures those and does the correct processing at page
fault time to set up the buffers. Hence we should never see an
unmapped dirty buffer in writeback. ->page-mkwrite was introduced
around 2.6.18 IIRC, but there has been changes to the way it works
since then. Maybe it is not functioning correctly on your kernel?
However, this is just one example of how buffers are handled
differently _outside XFS_ on older kernels. Nobody will be able to
give you a definitive list of what has changed - you'll only find
those by trolling git logs or testing and tripping over them.
As it is, I'm curious why you are backporting to such an old kernel
rather than just using a newer kernel. Using a newer kernel would
save you a lot of time and effort....