On 19.04.20 05:14, Matthew Wilcox wrote:
On Sun, Apr 19, 2020 at 12:51:18AM +0200, Guoqing Jiang wrote:
When reading md code, I find md-bitmap.c copies __clear_page_buffers from
buffer.c, and after more search, seems there are some places in fs could
use this function directly. So this patchset tries to export the function
and use it to cleanup code.
OK, I see why you did this, but there are a couple of problems with it.
One is just a sequencing problem; between exporting __clear_page_buffers()
and removing it from the md code, the md code won't build.
Thank for reminder, I missed that.
More seriously, most of this code has nothing to do with buffers. It
uses page->private for its own purposes.
What I would do instead is add:
clear_page_private(struct page *page)
{
ClearPagePrivate(page);
set_page_private(page, 0);
put_page(page);
}
to include/linux/mm.h, then convert all callers of __clear_page_buffers()
to call that instead.
Thanks for your suggestion!
Thanks,
Guoqing