From 2d04c71cd1d09989a119eba5a361ff43b49dc6ad Mon Sep 17 00:00:00 2001 From: "J. Bruce Fields" Date: Wed, 6 May 2009 16:32:54 -0400 Subject: [PATCH] --- yaml --- r: 144880 b: refs/heads/master c: 89996df4b5b1a09c279f50b3fd03aa9df735f5cb h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/lockd/svc.c | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index cd7d8fc95c47..e3fc57e8891c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b2c0cea6b1cb210e962f07047df602875564069e +refs/heads/master: 89996df4b5b1a09c279f50b3fd03aa9df735f5cb diff --git a/trunk/fs/lockd/svc.c b/trunk/fs/lockd/svc.c index abf83881f68a..1a54ae14a192 100644 --- a/trunk/fs/lockd/svc.c +++ b/trunk/fs/lockd/svc.c @@ -104,6 +104,16 @@ static void set_grace_period(void) schedule_delayed_work(&grace_period_end, grace_period); } +static void restart_grace(void) +{ + if (nlmsvc_ops) { + cancel_delayed_work_sync(&grace_period_end); + locks_end_grace(&lockd_manager); + nlmsvc_invalidate_all(); + set_grace_period(); + } +} + /* * This is the lockd kernel thread */ @@ -149,10 +159,7 @@ lockd(void *vrqstp) if (signalled()) { flush_signals(current); - if (nlmsvc_ops) { - nlmsvc_invalidate_all(); - set_grace_period(); - } + restart_grace(); continue; }