[Impact]
Under heavy NFS + FSCache load, a user sometimes observes a hang in __fscache_wait_on_page_write+0x5f/0xa0.
Example traces: [<ffffffffc009f1bf>] __fscache_wait_on_page_write+0x5f/0xa0 [fscache] [<ffffffffc009f6da>] __fscache_uncache_all_inode_pages+0xba/0x120 [fscache] [<ffffffffc0419ece>] nfs_fscache_open_file+0x4e/0xc0 [nfs]
[<ffffffffc034f1bf>] __fscache_wait_on_page_write+0x5f/0xa0 [fscache] [<ffffffffc04104dc>] __nfs_fscache_invalidate_page+0x2c/0x80 [nfs] [<ffffffffc03fb543>] nfs_invalidate_page+0x63/0x90 [nfs] [<ffffffff811925c0>] truncate_inode_page+0x80/0x90
[Fix] Cherry-pick 2c98425720233ae3e135add0c7e869b32913502f from upstream, which is a patch from the FSCache maintainer.
[Testcase] The user has run a NFS stress-test with a similar home-grown patch, and will run a stress test on the proposed kernel.
[Regression Potential] Patch is limited to FSCache, so regression potential is limited.
[Impact]
Under heavy NFS + FSCache load, a user sometimes observes a hang in __fscache_ wait_on_ page_write+ 0x5f/0xa0.
Example traces: 1bf>] __fscache_ wait_on_ page_write+ 0x5f/0xa0 [fscache] 6da>] __fscache_ uncache_ all_inode_ pages+0xba/ 0x120 [fscache] ece>] nfs_fscache_ open_file+ 0x4e/0xc0 [nfs]
[<ffffffffc009f
[<ffffffffc009f
[<ffffffffc0419
[<ffffffffc034f 1bf>] __fscache_ wait_on_ page_write+ 0x5f/0xa0 [fscache] 4dc>] __nfs_fscache_ invalidate_ page+0x2c/ 0x80 [nfs] 543>] nfs_invalidate_ page+0x63/ 0x90 [nfs] 5c0>] truncate_ inode_page+ 0x80/0x90
[<ffffffffc0410
[<ffffffffc03fb
[<ffffffff81192
[Fix] 3e135add0c7e869 b32913502f from upstream, which is a patch from the FSCache maintainer.
Cherry-pick 2c98425720233ae
[Testcase]
The user has run a NFS stress-test with a similar home-grown patch, and will run a stress test on the proposed kernel.
[Regression Potential]
Patch is limited to FSCache, so regression potential is limited.