summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/nfs/nfs4renewd.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/fs/nfs/nfs4renewd.c b/fs/nfs/nfs4renewd.c
index 043b2de8d416..30065df1482e 100644
--- a/fs/nfs/nfs4renewd.c
+++ b/fs/nfs/nfs4renewd.c
@@ -133,6 +133,8 @@ nfs4_kill_renewd(struct nfs_client *clp)
cancel_delayed_work_sync(&clp->cl_renewd);
}
+#define MAX_LEASE_PERIOD (60 * 60) /* 1 hour */
+
/**
* nfs4_set_lease_period - Sets the lease period on a nfs_client
*
@@ -141,7 +143,13 @@ nfs4_kill_renewd(struct nfs_client *clp)
*/
void nfs4_set_lease_period(struct nfs_client *clp, u32 period)
{
- unsigned long lease = period * HZ;
+ unsigned long lease;
+
+ /* Limit the lease period */
+ if (period < MAX_LEASE_PERIOD)
+ lease = period * HZ;
+ else
+ lease = MAX_LEASE_PERIOD * HZ;
spin_lock(&clp->cl_lock);
clp->cl_lease_time = lease;