OK, I see what is going on here - and I think this could actually
break regular XFS as well - if you use the loop device on a highmem
machine. I will fix it in my 2.4.1 merge which should be out in cvs
in a day or two. 2.4.1 is running with XFS, but I am not happy with
what the kernel changes have done to performance.
Steve
> 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)
|