Date: Thu, 19 Apr 2012 16:58:44 -0400 From: Mark Saad <nonesuch@longcount.org> To: freebsd-hackers@freebsd.org Subject: Re: mount_nfs does not like exports longer then 88 chars Message-ID: <CAMXt9NaEXKUDKA53Tf7iHCBHgKcHcgV%2BphXUzHZUT78=5-PTYg@mail.gmail.com> In-Reply-To: <AC6674AB7BC78549BB231821ABF7A9AEB82E939970@EMBX01-WF.jnpr.net> References: <CAMXt9NYvLsMEw_SLC813JfDR%2BzpdcZgtKU9usG0BWOz74hNJ6Q@mail.gmail.com> <AC6674AB7BC78549BB231821ABF7A9AEB82E939970@EMBX01-WF.jnpr.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Apr 19, 2012 at 3:51 PM, Andrew Duane <aduane@juniper.net> wrote: > MNAMELEN is used to bound the Mount NAMe LENgth, and is used in many many= places. It may seem to work fine, but there are lots of utilities and such= that will almost certainly fail managing it. Search the source code for MN= AMELEN..... I see that this is used in a number of Mount and fs bits. Do you know why mount_nfs would care how long the exported path and hostname are ? > > =C2=A0................................... > Andrew Duane > Juniper Networks > +1 978-589-0551=C2=A0(o) > +1 603-770-7088=C2=A0(m) > aduane@juniper.net > > > > >> -----Original Message----- >> From: owner-freebsd-hackers@freebsd.org [mailto:owner-freebsd- >> hackers@freebsd.org] On Behalf Of Mark Saad >> Sent: Thursday, April 19, 2012 3:46 PM >> To: freebsd-hackers@freebsd.org >> Subject: mount_nfs does not like exports longer then 88 chars >> >> Hello Hackers >> =C2=A0 I was wondering if anyone has come across this issue. This exists= in >> FreeBSD 6, 7, and 9 , and probably in 8 but I am not using it at this ti= me. >> When a nfs export path and host name total to more then 88 characters >> mount_nfs bombs out with the following error when it attempts to mount i= t. >> >> mount_nfs: nyisilon2-13.grp2:/ifs/clients/www/csar884520456/files_cms- s= tage-BK/imagefield_default_images: >> File name too long >> >> I traced this down to a check in mount_nfs.c . This is about line 560 >> in the 7-STABLE version =C2=A0and =C2=A0734 in the 9-STABLE version >> >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* If there has been a trailing slash a= t mounttime it seems >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* that some mountd implementations fai= l to remove the mount >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* entries from their mountlist while u= nmounting. >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/ >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 for (speclen =3D strlen(spec); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 speclen > 1 && s= pec[speclen - 1] =3D=3D '/'; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 speclen--) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 spec[speclen - 1= ] =3D '\0'; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (strlen(hostp) + strlen(spec) + 1 > MNAME= LEN) { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 warnx("%s:%s: %s= ", hostp, spec, strerror(ENAMETOOLONG)); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return (0); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 } >> >> Does any one know why the check for hostp + spec +1 to be less then >> MNAMELEN is there for ? >> >> =C2=A0I removed the check on my 9-STABLE box and it mounts the long moun= ts fine >> >> I submitted a pr for this its kern/167105 >> http://www.freebsd.org/cgi/query-pr.cgi?pr=3D167105 as there is no >> mention of this in the man page and I cant find any reason for the check= at all. >> >> >> -- >> mark saad | nonesuch@longcount.org >> _______________________________________________ >> freebsd-hackers@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers >> To unsubscribe, send any mail to "freebsd-hackers- >> unsubscribe@freebsd.org" --=20 mark saad | nonesuch@longcount.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAMXt9NaEXKUDKA53Tf7iHCBHgKcHcgV%2BphXUzHZUT78=5-PTYg>