I'm testing XFS (from CVS as of sometime yesterday) on a machine with
1GB memory and the kernel built with CONFIG_HIGHMEM. The kernel
contains code of my own which is provoking the problem, though it
isn't the root cause.
What happens is that inside the kunmap in pagebuf_commit_write, the
check in kunmap_high() that the page is already mapped fails.
pagebuf_prepare_write isn't leaving the page mapped as it should (if
successful).
I realize that XFS doesn't use generic_file_write itself, so this bug
doesn't affect XFS as is (pagebuf_generic_file_write correctly
kmaps/kunmaps). But since the pagebuf_{prepare,commit}_write are
exported to the rest of the kernel through the inode a_ops, it would
be nice if they followed the Linux semantics.
David Wragg
(please Cc: me on follow-ups, I'm not subscribed to this list)
|