summaryrefslogtreecommitdiff
path: root/fs/nfs/nfs4session.h
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-12-02 13:54:59 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-12-06 00:30:53 +0100
commit1fa8064429d0acbf5bbf3c8a53f65679fdacc75e (patch)
tree86e9c0420815d6029c47d836bf3d7a4c93098c3c /fs/nfs/nfs4session.h
parentc05eecf636101dd4347b2d8fa457626bf0088e0a (diff)
downloadlinux-3.10-1fa8064429d0acbf5bbf3c8a53f65679fdacc75e.tar.gz
linux-3.10-1fa8064429d0acbf5bbf3c8a53f65679fdacc75e.tar.bz2
linux-3.10-1fa8064429d0acbf5bbf3c8a53f65679fdacc75e.zip
NFSv4.1: Try to eliminate outliers when updating target_highest_slotid
Look for sudden changes in the first and second derivatives in order to eliminate outlier changes to target_highest_slotid (which are due to out-of-order RPC replies). Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4session.h')
-rw-r--r--fs/nfs/nfs4session.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/nfs4session.h b/fs/nfs/nfs4session.h
index 7db73937016..04f834cab16 100644
--- a/fs/nfs/nfs4session.h
+++ b/fs/nfs/nfs4session.h
@@ -38,6 +38,8 @@ struct nfs4_slot_table {
* op for dynamic resizing */
u32 target_highest_slotid; /* Server max_slot target */
u32 server_highest_slotid; /* Server highest slotid */
+ s32 d_target_highest_slotid; /* Derivative */
+ s32 d2_target_highest_slotid; /* 2nd derivative */
unsigned long generation; /* Generation counter for
target_highest_slotid */
struct completion complete;