Skip to content
Commit 2454dfea authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFSv4.x/pnfs: Fix a race between layoutget and pnfs_destroy_layout

If the server reboots while there is a layoutget outstanding, then
the call to pnfs_choose_layoutget_stateid() will fail with an EAGAIN
error, which causes an infinite loop in send_layoutget(). The reason
why we never break out of the loop is that the layout 'plh_block_lgets'
field is never cleared.

Fix is to replace plh_block_lgets with NFS_LAYOUT_INVALID_STID, which
can be reset after a new layoutget.

Fixes: ab7d763e

 ("pNFS: Ensure nfs4_layoutget_prepare returns...")
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
parent d07fbb8f
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment