RFC5661 has a mechanism for ensuring that the forward channel and backward channel do not race. The Linux client implements this mechanism, but in a manner that is racy, making it rather pointless, and buggy (Oops!). This patch series fixes the most egregious issues around delegations and layouts by ensuring that we wait for completion of the actual setup of the delegation or layout that could be subject to recall. Trond Myklebust (5): NFSv4.1: Fix Oopsable condition in server callback races NFSv4.1: Delay callback processing when there are referring triples NFSv4.1: Defer bumping the slot sequence number until we free the slot NFSv4.1: Close callback races for OPEN, LAYOUTGET and LAYOUTRETURN NFSv4.1: Remove obsolete and incorrrect assignment in nfs4_callback_sequence fs/nfs/callback_proc.c | 8 ++--- fs/nfs/nfs4proc.c | 89 +++++++++++++++++++++++++++++++++++++++++--------- fs/nfs/nfs4session.c | 53 ++++++++++++++++++++++++++++++ fs/nfs/nfs4session.h | 7 +++- 4 files changed, 135 insertions(+), 22 deletions(-) -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html