aboutsummaryrefslogtreecommitdiffstats
path: root/fs/lockd/mon.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/lockd/mon.c')
-rw-r--r--fs/lockd/mon.c18
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 */
56int __read_mostly nsm_local_state; 56u32 __read_mostly nsm_local_state;
57int __read_mostly nsm_use_hostnames; 57int __read_mostly nsm_use_hostnames;
58 58
59static inline struct sockaddr *nsm_addr(const struct nsm_handle *nsm) 59static 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/**