Consistently use vop_stdpathconf() for default pathconf values.

Update filesystems not currently using vop_stdpathconf() in pathconf
VOPs to use vop_stdpathconf() for any configuration variables that do
not have filesystem-specific values.  vop_stdpathconf() is used for
variables that have system-wide settings as well as providing default
values for some values based on system limits.  Filesystems can still
explicitly override individual settings.

PR:		219851
Reported by:	cem
Reviewed by:	cem, kib, ngie
MFC after:	1 month
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D11541
This commit is contained in:
John Baldwin 2017-07-11 21:55:20 +00:00
parent 4e287bd860
commit 15a88f8158
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=320900
9 changed files with 9 additions and 133 deletions

View File

@ -792,20 +792,11 @@ cd9660_pathconf(ap)
else
*ap->a_retval = 37;
return (0);
case _PC_PATH_MAX:
*ap->a_retval = PATH_MAX;
return (0);
case _PC_PIPE_BUF:
*ap->a_retval = PIPE_BUF;
return (0);
case _PC_CHOWN_RESTRICTED:
*ap->a_retval = 1;
return (0);
case _PC_NO_TRUNC:
*ap->a_retval = 1;
return (0);
default:
return (EINVAL);
return (vop_stdpathconf(ap));
}
/* NOTREACHED */
}

View File

@ -1627,18 +1627,6 @@ ext2_pathconf(struct vop_pathconf_args *ap)
else
*ap->a_retval = ext2_max_nlink(VTOI(ap->a_vp));
break;
case _PC_NAME_MAX:
*ap->a_retval = NAME_MAX;
break;
case _PC_PATH_MAX:
*ap->a_retval = PATH_MAX;
break;
case _PC_PIPE_BUF:
*ap->a_retval = PIPE_BUF;
break;
case _PC_CHOWN_RESTRICTED:
*ap->a_retval = 1;
break;
case _PC_NO_TRUNC:
*ap->a_retval = 1;
break;
@ -1661,11 +1649,6 @@ ext2_pathconf(struct vop_pathconf_args *ap)
case _PC_MIN_HOLE_SIZE:
*ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize;
break;
case _PC_ASYNC_IO:
/* _PC_ASYNC_IO should have been handled by upper layers. */
KASSERT(0, ("_PC_ASYNC_IO should not get here"));
error = EINVAL;
break;
case _PC_PRIO_IO:
*ap->a_retval = 0;
break;
@ -1695,7 +1678,7 @@ ext2_pathconf(struct vop_pathconf_args *ap)
break;
default:
error = EINVAL;
error = vop_stdpathconf(ap);
break;
}
return (error);

View File

@ -71,7 +71,6 @@ struct fifoinfo {
static vop_print_t fifo_print;
static vop_open_t fifo_open;
static vop_close_t fifo_close;
static vop_pathconf_t fifo_pathconf;
static vop_advlock_t fifo_advlock;
struct vop_vector fifo_specops = {
@ -87,7 +86,7 @@ struct vop_vector fifo_specops = {
.vop_mkdir = VOP_PANIC,
.vop_mknod = VOP_PANIC,
.vop_open = fifo_open,
.vop_pathconf = fifo_pathconf,
.vop_pathconf = vop_stdpathconf,
.vop_print = fifo_print,
.vop_read = VOP_PANIC,
.vop_readdir = VOP_PANIC,
@ -339,34 +338,6 @@ fifo_print(ap)
return (0);
}
/*
* Return POSIX pathconf information applicable to fifo's.
*/
static int
fifo_pathconf(ap)
struct vop_pathconf_args /* {
struct vnode *a_vp;
int a_name;
int *a_retval;
} */ *ap;
{
switch (ap->a_name) {
case _PC_LINK_MAX:
*ap->a_retval = LINK_MAX;
return (0);
case _PC_PIPE_BUF:
*ap->a_retval = PIPE_BUF;
return (0);
case _PC_CHOWN_RESTRICTED:
*ap->a_retval = 1;
return (0);
default:
return (EINVAL);
}
/* NOTREACHED */
}
/*
* Fifo advisory byte-level locks.
*/

View File

@ -1875,17 +1875,11 @@ msdosfs_pathconf(struct vop_pathconf_args *ap)
case _PC_NAME_MAX:
*ap->a_retval = pmp->pm_flags & MSDOSFSMNT_LONGNAME ? WIN_MAXLEN : 12;
return (0);
case _PC_PATH_MAX:
*ap->a_retval = PATH_MAX;
return (0);
case _PC_CHOWN_RESTRICTED:
*ap->a_retval = 1;
return (0);
case _PC_NO_TRUNC:
*ap->a_retval = 0;
return (0);
default:
return (EINVAL);
return (vop_stdpathconf(ap));
}
/* NOTREACHED */
}

View File

@ -2236,21 +2236,6 @@ nandfs_pathconf(struct vop_pathconf_args *ap)
error = 0;
switch (ap->a_name) {
case _PC_LINK_MAX:
*ap->a_retval = LINK_MAX;
break;
case _PC_NAME_MAX:
*ap->a_retval = NAME_MAX;
break;
case _PC_PATH_MAX:
*ap->a_retval = PATH_MAX;
break;
case _PC_PIPE_BUF:
*ap->a_retval = PIPE_BUF;
break;
case _PC_CHOWN_RESTRICTED:
*ap->a_retval = 1;
break;
case _PC_NO_TRUNC:
*ap->a_retval = 1;
break;
@ -2273,7 +2258,7 @@ nandfs_pathconf(struct vop_pathconf_args *ap)
*ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize;
break;
default:
error = EINVAL;
error = vop_stdpathconf(ap);
break;
}
return (error);

View File

@ -3481,12 +3481,6 @@ nfs_pathconf(struct vop_pathconf_args *ap)
case _PC_NAME_MAX:
*ap->a_retval = pc.pc_namemax;
break;
case _PC_PATH_MAX:
*ap->a_retval = PATH_MAX;
break;
case _PC_PIPE_BUF:
*ap->a_retval = PIPE_BUF;
break;
case _PC_CHOWN_RESTRICTED:
*ap->a_retval = pc.pc_chownrestricted;
break;
@ -3512,11 +3506,6 @@ nfs_pathconf(struct vop_pathconf_args *ap)
case _PC_MAC_PRESENT:
*ap->a_retval = 0;
break;
case _PC_ASYNC_IO:
/* _PC_ASYNC_IO should have been handled by upper layers. */
KASSERT(0, ("_PC_ASYNC_IO should not get here"));
error = EINVAL;
break;
case _PC_PRIO_IO:
*ap->a_retval = 0;
break;
@ -3549,7 +3538,7 @@ nfs_pathconf(struct vop_pathconf_args *ap)
break;
default:
error = EINVAL;
error = vop_stdpathconf(ap);
break;
}
return (error);

View File

@ -907,7 +907,7 @@ smbfs_pathconf (ap)
*retval = 800; /* XXX: a correct one ? */
break;
default:
error = EINVAL;
error = vop_stdpathconf(ap);
}
return error;
}

View File

@ -1344,26 +1344,6 @@ tmpfs_pathconf(struct vop_pathconf_args *v)
error = 0;
switch (name) {
case _PC_LINK_MAX:
*retval = LINK_MAX;
break;
case _PC_NAME_MAX:
*retval = NAME_MAX;
break;
case _PC_PATH_MAX:
*retval = PATH_MAX;
break;
case _PC_PIPE_BUF:
*retval = PIPE_BUF;
break;
case _PC_CHOWN_RESTRICTED:
*retval = 1;
break;
case _PC_NO_TRUNC:
*retval = 1;
break;
@ -1377,7 +1357,7 @@ tmpfs_pathconf(struct vop_pathconf_args *v)
break;
default:
error = EINVAL;
error = vop_stdpathconf(v);
}
return error;

View File

@ -2442,21 +2442,9 @@ ufs_pathconf(ap)
error = 0;
switch (ap->a_name) {
case _PC_LINK_MAX:
*ap->a_retval = LINK_MAX;
break;
case _PC_NAME_MAX:
*ap->a_retval = UFS_MAXNAMLEN;
break;
case _PC_PATH_MAX:
*ap->a_retval = PATH_MAX;
break;
case _PC_PIPE_BUF:
*ap->a_retval = PIPE_BUF;
break;
case _PC_CHOWN_RESTRICTED:
*ap->a_retval = 1;
break;
case _PC_NO_TRUNC:
*ap->a_retval = 1;
break;
@ -2505,11 +2493,6 @@ ufs_pathconf(ap)
case _PC_MIN_HOLE_SIZE:
*ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize;
break;
case _PC_ASYNC_IO:
/* _PC_ASYNC_IO should have been handled by upper layers. */
KASSERT(0, ("_PC_ASYNC_IO should not get here"));
error = EINVAL;
break;
case _PC_PRIO_IO:
*ap->a_retval = 0;
break;
@ -2539,7 +2522,7 @@ ufs_pathconf(ap)
break;
default:
error = EINVAL;
error = vop_stdpathconf(ap);
break;
}
return (error);