rpcsvc: Move xdr round up functions to rpc code
Signed-off-by: Shehjar Tikoo <shehjart@dev.gluster.com> Signed-off-by: Shehjar Tikoo <shehjart@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 902 (iozone hangs during random read throughput test) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=902
This commit is contained in:
parent
eba21f8fb6
commit
80c3061c07
@ -534,25 +534,3 @@ xdr_serialize_nfsstat3 (struct iovec outmsg, nfsstat3 *s)
|
||||
}
|
||||
|
||||
|
||||
ssize_t
|
||||
xdr_length_round_up (size_t len, size_t bufsize)
|
||||
{
|
||||
int roundup = 0;
|
||||
|
||||
roundup = len % XDR_BYTES_PER_UNIT;
|
||||
if (roundup > 0)
|
||||
roundup = XDR_BYTES_PER_UNIT - roundup;
|
||||
|
||||
if ((roundup > 0) && ((roundup + len) <= bufsize))
|
||||
len += roundup;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
int
|
||||
xdr_bytes_round_up (struct iovec *vec, size_t bufsize)
|
||||
{
|
||||
vec->iov_len = xdr_length_round_up (vec->iov_len, bufsize);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -183,10 +183,4 @@ xdr_serialize_mountstat3 (struct iovec outmsg, mountstat3 *m);
|
||||
|
||||
extern ssize_t
|
||||
xdr_serialize_nfsstat3 (struct iovec outmsg, nfsstat3 *s);
|
||||
|
||||
extern int
|
||||
xdr_bytes_round_up (struct iovec *vec, size_t bufsize);
|
||||
|
||||
extern ssize_t
|
||||
xdr_length_round_up (size_t len, size_t bufsize);
|
||||
#endif
|
||||
|
@ -188,3 +188,37 @@ xdr_to_auth_unix_cred (char *msgbuf, int msglen, struct authunix_parms *au,
|
||||
return 0;
|
||||
}
|
||||
|
||||
ssize_t
|
||||
xdr_length_round_up (size_t len, size_t bufsize)
|
||||
{
|
||||
int roundup = 0;
|
||||
|
||||
roundup = len % XDR_BYTES_PER_UNIT;
|
||||
if (roundup > 0)
|
||||
roundup = XDR_BYTES_PER_UNIT - roundup;
|
||||
|
||||
if ((roundup > 0) && ((roundup + len) <= bufsize))
|
||||
len += roundup;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
int
|
||||
xdr_bytes_round_up (struct iovec *vec, size_t bufsize)
|
||||
{
|
||||
vec->iov_len = xdr_length_round_up (vec->iov_len, bufsize);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
xdr_vector_round_up (struct iovec *vec, int vcount, uint32_t count)
|
||||
{
|
||||
uint32_t round_count = 0;
|
||||
|
||||
round_count = xdr_length_round_up (count, 1048576);
|
||||
round_count -= count;
|
||||
if (round_count == 0)
|
||||
return;
|
||||
|
||||
vec[vcount-1].iov_len += round_count;
|
||||
}
|
||||
|
@ -71,4 +71,12 @@ xdr_to_auth_unix_cred (char *msgbuf, int msglen, struct authunix_parms *au,
|
||||
#define rpc_call_verf_flavour(call) (rpc_opaque_auth_flavour ((&(call)->ru.RM_cmb.cb_verf)))
|
||||
#define rpc_call_verf_len(call) (rpc_opaque_auth_len ((&(call)->ru.RM_cmb.cb_verf)))
|
||||
|
||||
extern int
|
||||
xdr_bytes_round_up (struct iovec *vec, size_t bufsize);
|
||||
|
||||
extern ssize_t
|
||||
xdr_length_round_up (size_t len, size_t bufsize);
|
||||
|
||||
void
|
||||
xdr_vector_round_up (struct iovec *vec, int vcount, uint32_t count);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user