"rpc mount export: RPC: Can't decode result" when export list is to long

Rick Macklem rmacklem at uoguelph.ca
Sat Jan 29 20:17:27 UTC 2011


Oops, I should have looked at the sources...

In mountd.c it limits the RPC size to 8800 for UDP and 9000
for TCP. (UDPMSGSIZE and RPC_MAXDATASIZE respectively)

You could increase this by changing:
  svc_dg_create(...,0, 0);
 else
  svc_vc_create(...,RPC_MAXDATASIZE, RPC_MAXDATASIZE);

to
  svc_dg_create(..., 63 * 1024, 63 * 1024);
 else
  svc_vc_create(..., 200 * 1024, 200 * 1024);
in mountd.c

But...
 The Linux client might set a smaller limit in its client
 side RPC library anyhow.

Again, I am surprised that the Linux automount checks the
exports reported via mountd, but???

Did you check to see if the mounts work manually?
(That would confirm if they are exported ok.)

rick
ps: UDP datagrams are limited to 64K, but since I can't remember
    if that size includes the UDP header, I went with 63K. For
    TCP it is limited to 256K in the RPC library and to a somewhat
    lower value with the default kern.ipc.maxsockbuf. (Basically
    what the kernel sets sb_max_adj to.)


More information about the freebsd-fs mailing list