diff options
Diffstat (limited to 'fs/lockd/mon.c')
-rw-r--r-- | fs/lockd/mon.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c index 6d5d4a4169e5..38385336614c 100644 --- a/fs/lockd/mon.c +++ b/fs/lockd/mon.c | |||
@@ -53,7 +53,7 @@ static DEFINE_SPINLOCK(nsm_lock); | |||
53 | /* | 53 | /* |
54 | * Local NSM state | 54 | * Local NSM state |
55 | */ | 55 | */ |
56 | int __read_mostly nsm_local_state; | 56 | u32 __read_mostly nsm_local_state; |
57 | int __read_mostly nsm_use_hostnames; | 57 | int __read_mostly nsm_use_hostnames; |
58 | 58 | ||
59 | static inline struct sockaddr *nsm_addr(const struct nsm_handle *nsm) | 59 | static inline struct sockaddr *nsm_addr(const struct nsm_handle *nsm) |
@@ -184,13 +184,19 @@ int nsm_monitor(const struct nlm_host *host) | |||
184 | nsm->sm_mon_name = nsm_use_hostnames ? nsm->sm_name : nsm->sm_addrbuf; | 184 | nsm->sm_mon_name = nsm_use_hostnames ? nsm->sm_name : nsm->sm_addrbuf; |
185 | 185 | ||
186 | status = nsm_mon_unmon(nsm, NSMPROC_MON, &res); | 186 | status = nsm_mon_unmon(nsm, NSMPROC_MON, &res); |
187 | if (res.status != 0) | 187 | if (unlikely(res.status != 0)) |
188 | status = -EIO; | 188 | status = -EIO; |
189 | if (status < 0) | 189 | if (unlikely(status < 0)) { |
190 | printk(KERN_NOTICE "lockd: cannot monitor %s\n", nsm->sm_name); | 190 | printk(KERN_NOTICE "lockd: cannot monitor %s\n", nsm->sm_name); |
191 | else | 191 | return status; |
192 | nsm->sm_monitored = 1; | 192 | } |
193 | return status; | 193 | |
194 | nsm->sm_monitored = 1; | ||
195 | if (unlikely(nsm_local_state != res.state)) { | ||
196 | nsm_local_state = res.state; | ||
197 | dprintk("lockd: NSM state changed to %d\n", nsm_local_state); | ||
198 | } | ||
199 | return 0; | ||
194 | } | 200 | } |
195 | 201 | ||
196 | /** | 202 | /** |