Skip site navigation (1)Skip section navigation (2)
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>