Re: nfs mmap adventure (was: 2.6.23-mm1)

David Howells
2007-10-15T14:06:50Z

Peter Zijlstra <peterz@infradead.org> wrote:

> I get funny SIGBUS' like so:
>
> fault
> if (->page_mkwrite() < 0)
> nfs_vm_page_mkwrite()
> nfs_write_begin()
> nfs_flush_incompatible()
> nfs_wb_page()
> nfs_wb_page_priority()
> nfs_sync_mapping_wait()
> nfs_wait_on_request_locked()
> nfs_wait_on_request()
> nfs_wait_bit_interruptible()
> return -ERESTARTSYS
> SIGBUS
>
> trying to figure out what to do about this...
>

Hmmm... It sounds like the fault handler should deliver the appropriate
signal, should ->page_mkwrite() return ERESTARTSYS, and then retry the access
instruction that caused the fault when the signal handler has finished
running.

David