Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 92904
b: refs/heads/master
c: 0490a54
h: refs/heads/master
v: v3
  • Loading branch information
Chuck Lever authored and Trond Myklebust committed Mar 19, 2008
1 parent 8231efb commit 9896b4c
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2ca7754d4c96d68e1475690422a202ba5f0443d8
refs/heads/master: 0490a54a00c14212f22c5948c8c13a4553d745bd
30 changes: 24 additions & 6 deletions trunk/fs/lockd/mon.c
Original file line number Diff line number Diff line change
Expand Up @@ -218,18 +218,35 @@ static __be32 *xdr_encode_mon_id(__be32 *p, struct nsm_args *argp)
return xdr_encode_my_id(p, argp);
}

/*
* The "priv" argument may contain private information required
* by the SM_MON call. This information will be supplied in the
* SM_NOTIFY call.
*
* Linux provides the raw IP address of the monitored host,
* left in network byte order.
*/
static __be32 *xdr_encode_priv(__be32 *p, struct nsm_args *argp)
{
*p++ = argp->addr;
*p++ = 0;
*p++ = 0;
*p++ = 0;

return p;
}

static int
xdr_encode_mon(struct rpc_rqst *rqstp, __be32 *p, struct nsm_args *argp)
{
p = xdr_encode_mon_id(p, argp);
if (IS_ERR(p))
return PTR_ERR(p);

/* Surprise - there may even be room for an IPv6 address now */
*p++ = argp->addr;
*p++ = 0;
*p++ = 0;
*p++ = 0;
p = xdr_encode_priv(p, argp);
if (IS_ERR(p))
return PTR_ERR(p);

rqstp->rq_slen = xdr_adjust_iovec(rqstp->rq_svec, p);
return 0;
}
Expand Down Expand Up @@ -265,7 +282,8 @@ xdr_decode_stat(struct rpc_rqst *rqstp, __be32 *p, struct nsm_res *resp)
#define SM_my_id_sz (SM_my_name_sz+3)
#define SM_mon_name_sz (1+XDR_QUADLEN(SM_MAXSTRLEN))
#define SM_mon_id_sz (SM_mon_name_sz+SM_my_id_sz)
#define SM_mon_sz (SM_mon_id_sz+4)
#define SM_priv_sz (XDR_QUADLEN(SM_PRIV_SIZE))
#define SM_mon_sz (SM_mon_id_sz+SM_priv_sz)
#define SM_monres_sz 2
#define SM_unmonres_sz 1

Expand Down
1 change: 1 addition & 0 deletions trunk/include/linux/lockd/sm_inter.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#define SM_NOTIFY 6

#define SM_MAXSTRLEN 1024
#define SM_PRIV_SIZE 16

/*
* Arguments for all calls to statd
Expand Down

0 comments on commit 9896b4c

Please sign in to comment.