Comment 21 for bug 58170

Revision history for this message
Colin Ian King (colin-king) wrote :

SRU justification:

Impact: Kernel BUG in lib/radix-tree.c:372.

There is no serialisation between NFS asynchronous writebacks
and truncation at the page level due to the fact that nfs_sync_inode()
cannot lock the pages that it is about to write out.

This means that it is possible to be flushing out data (and calling something
like set_page_writeback()) while the page cache is busy evicting the page.

Fix: Backport of upstream cherry pick cd52ed35535ef443f08bf5cd3331d350272885b8

Testcases:

1. Dapper Kernel always freezes when it mounts nfsv4 filesystems
and
2. Virtual vmware machines are on a nfs mounted filesystem. One vmware
machine goes unuseable and comsumes all the CPU time. A kill -KILL pid
doesn't wipe out the vmware process. A ls -lh on the nfs mount hangs.
and
3. Create file i/o's in a virtual host, for example copy folder to other
and kernel BUG in lib/radix-tree.c occurs.