Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Apr 2011 13:16:32 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-fs@freebsd.org, gljennjohn@googlemail.com
Subject:   Re: Knob to turn off _POSIX_NO_TRUNC
Message-ID:  <201104051316.32704.jhb@freebsd.org>
In-Reply-To: <20110405183104.2304d94e@ernst.jennejohn.org>
References:  <20110405141631.GA78089@deviant.kiev.zoral.com.ua> <20110405154002.GD78089@deviant.kiev.zoral.com.ua> <20110405183104.2304d94e@ernst.jennejohn.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, April 05, 2011 12:31:04 pm Gary Jennejohn wrote:
> On Tue, 5 Apr 2011 18:40:02 +0300
> Kostik Belousov <kostikbel@gmail.com> wrote:
> 
> > On Tue, Apr 05, 2011 at 05:27:46PM +0200, Gary Jennejohn wrote:
> > > On Tue, 5 Apr 2011 17:16:31 +0300
> > > Kostik Belousov <kostikbel@gmail.com> wrote:
> > > > @@ -514,8 +519,14 @@ dirloop:
> > > >  		continue;
> > > >  	cnp->cn_namelen = cp - cnp->cn_nameptr;
> > > >  	if (cnp->cn_namelen > NAME_MAX) {
> > > > -		error = ENAMETOOLONG;
> > > > -		goto bad;
> > > > +		if (!lookup_trim) {
> > > 
> > > I would intuitively expect trimming to be enabled when the sysctl is set
> > > to 1, but this is exactly the opposite of that.  I personally would
> > > initialize it to 1.
> > Trimming is indeed enabled when lookup_trim is set to 1.
> > If lookup_trim is 0, you get ENAMETOOLONG.
> 
> OK, but trimming to me as a native english speaker means returning ENAMETOOLONG
> rather than allowing names longer than NAME_MAX.  That is, after all, what trimming
> means - cutting off.

Err, it shortens the name by chopping off the part beyond NAME_MAX ("trimming")
when enabled.  You could perhaps call it 'truncate_long_pathnames' instead of
'lookup_trim' if you wanted it to be very descriptive.

Personally, I find this a bit hackish.  You could always "fix" the 3rd party
software by using LD_PRELOAD() to implement a wrapper around open() that trimmed
the name if open() fails with ENAMETOOLONG.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201104051316.32704.jhb>