Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 Jul 2004 16:04:40 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Garrett Wollman <wollman@khavrinen.lcs.mit.edu>
Cc:        src-committers@FreeBSD.org
Subject:   Re: cvs commit: src/lib/libc/sys pathconf.2
Message-ID:  <20040708154704.L13116@gamplex.bde.org>
In-Reply-To: <200407080133.i681XnxH041060@khavrinen.lcs.mit.edu>
References:  <200407072047.i67Klgqu082069@repoman.freebsd.org> <20040707233455.GI95729@elvis.mu.org> <200407080133.i681XnxH041060@khavrinen.lcs.mit.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 7 Jul 2004, Garrett Wollman wrote:

> <<On Wed, 7 Jul 2004 16:34:55 -0700, Alfred Perlstein <alfred@freebsd.org> said:
>
> > if _PC_NO_TRUNC returns 1 then an application should assume that
> > names longer than 14 characters (_POSIX_NAME_MAX) are truncated???
>
> No.  Under obsolete versions of POSIX, if {NO_TRUNC} is nonzero, an
> application should assume that pathname components longer than
> {NAME_MAX} are not truncated, but instead result in the [ENAMETOOLONG]
> error.  Under the current version of POSIX, [ENAMETOOLONG] is
> mandatory for all systems; this was an obsolete option to allow for
> the behavior of the V7 filesystem, which has been phased out.

This doesn't apply to FreeBSD.  Truncation is still useful (and used) for
old non-POSIX file systems like msdosfs:

% static int
% msdosfs_pathconf(ap)
% 	struct vop_pathconf_args /* {
% 		struct vnode *a_vp;
% 		int a_name;
% 		int *a_retval;
% 	} */ *ap;
% {
% 	struct msdosfsmount *pmp = VTODE(ap->a_vp)->de_pmp;
%
% 	switch (ap->a_name) {
% ...
% 	case _PC_NO_TRUNC:
% 		*ap->a_retval = 0;
% 		return (0);
% ...
% }

htpfs and ntpfs also return 0 for _PC_NO_TRUNC, possibly for less reason.
AFAIK they don't have too-small file name lengths, but they may need to
truncate names because that is what their native operating system does.

Bruce



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