aboutsummaryrefslogtreecommitdiffstats
path: root/fs/lockd/grace.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/lockd/grace.c')
-rw-r--r--fs/lockd/grace.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/fs/lockd/grace.c b/fs/lockd/grace.c
index 183cc1f0af1..8dbaff78209 100644
--- a/fs/lockd/grace.c
+++ b/fs/lockd/grace.c
@@ -4,8 +4,10 @@
4 4
5#include <linux/module.h> 5#include <linux/module.h>
6#include <linux/lockd/bind.h> 6#include <linux/lockd/bind.h>
7#include <net/net_namespace.h>
8
9#include "netns.h"
7 10
8static LIST_HEAD(grace_list);
9static DEFINE_SPINLOCK(grace_lock); 11static DEFINE_SPINLOCK(grace_lock);
10 12
11/** 13/**
@@ -21,8 +23,11 @@ static DEFINE_SPINLOCK(grace_lock);
21 */ 23 */
22void locks_start_grace(struct lock_manager *lm) 24void locks_start_grace(struct lock_manager *lm)
23{ 25{
26 struct net *net = &init_net;
27 struct lockd_net *ln = net_generic(net, lockd_net_id);
28
24 spin_lock(&grace_lock); 29 spin_lock(&grace_lock);
25 list_add(&lm->list, &grace_list); 30 list_add(&lm->list, &ln->grace_list);
26 spin_unlock(&grace_lock); 31 spin_unlock(&grace_lock);
27} 32}
28EXPORT_SYMBOL_GPL(locks_start_grace); 33EXPORT_SYMBOL_GPL(locks_start_grace);
@@ -54,6 +59,9 @@ EXPORT_SYMBOL_GPL(locks_end_grace);
54 */ 59 */
55int locks_in_grace(void) 60int locks_in_grace(void)
56{ 61{
57 return !list_empty(&grace_list); 62 struct net *net = &init_net;
63 struct lockd_net *ln = net_generic(net, lockd_net_id);
64
65 return !list_empty(&ln->grace_list);
58} 66}
59EXPORT_SYMBOL_GPL(locks_in_grace); 67EXPORT_SYMBOL_GPL(locks_in_grace);