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:
parent
4e287bd860
commit
15a88f8158
@ -792,20 +792,11 @@ cd9660_pathconf(ap)
|
|||||||
else
|
else
|
||||||
*ap->a_retval = 37;
|
*ap->a_retval = 37;
|
||||||
return (0);
|
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:
|
case _PC_NO_TRUNC:
|
||||||
*ap->a_retval = 1;
|
*ap->a_retval = 1;
|
||||||
return (0);
|
return (0);
|
||||||
default:
|
default:
|
||||||
return (EINVAL);
|
return (vop_stdpathconf(ap));
|
||||||
}
|
}
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
}
|
}
|
||||||
|
@ -1627,18 +1627,6 @@ ext2_pathconf(struct vop_pathconf_args *ap)
|
|||||||
else
|
else
|
||||||
*ap->a_retval = ext2_max_nlink(VTOI(ap->a_vp));
|
*ap->a_retval = ext2_max_nlink(VTOI(ap->a_vp));
|
||||||
break;
|
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:
|
case _PC_NO_TRUNC:
|
||||||
*ap->a_retval = 1;
|
*ap->a_retval = 1;
|
||||||
break;
|
break;
|
||||||
@ -1661,11 +1649,6 @@ ext2_pathconf(struct vop_pathconf_args *ap)
|
|||||||
case _PC_MIN_HOLE_SIZE:
|
case _PC_MIN_HOLE_SIZE:
|
||||||
*ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize;
|
*ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize;
|
||||||
break;
|
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:
|
case _PC_PRIO_IO:
|
||||||
*ap->a_retval = 0;
|
*ap->a_retval = 0;
|
||||||
break;
|
break;
|
||||||
@ -1695,7 +1678,7 @@ ext2_pathconf(struct vop_pathconf_args *ap)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
error = EINVAL;
|
error = vop_stdpathconf(ap);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return (error);
|
return (error);
|
||||||
|
@ -71,7 +71,6 @@ struct fifoinfo {
|
|||||||
static vop_print_t fifo_print;
|
static vop_print_t fifo_print;
|
||||||
static vop_open_t fifo_open;
|
static vop_open_t fifo_open;
|
||||||
static vop_close_t fifo_close;
|
static vop_close_t fifo_close;
|
||||||
static vop_pathconf_t fifo_pathconf;
|
|
||||||
static vop_advlock_t fifo_advlock;
|
static vop_advlock_t fifo_advlock;
|
||||||
|
|
||||||
struct vop_vector fifo_specops = {
|
struct vop_vector fifo_specops = {
|
||||||
@ -87,7 +86,7 @@ struct vop_vector fifo_specops = {
|
|||||||
.vop_mkdir = VOP_PANIC,
|
.vop_mkdir = VOP_PANIC,
|
||||||
.vop_mknod = VOP_PANIC,
|
.vop_mknod = VOP_PANIC,
|
||||||
.vop_open = fifo_open,
|
.vop_open = fifo_open,
|
||||||
.vop_pathconf = fifo_pathconf,
|
.vop_pathconf = vop_stdpathconf,
|
||||||
.vop_print = fifo_print,
|
.vop_print = fifo_print,
|
||||||
.vop_read = VOP_PANIC,
|
.vop_read = VOP_PANIC,
|
||||||
.vop_readdir = VOP_PANIC,
|
.vop_readdir = VOP_PANIC,
|
||||||
@ -339,34 +338,6 @@ fifo_print(ap)
|
|||||||
return (0);
|
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.
|
* Fifo advisory byte-level locks.
|
||||||
*/
|
*/
|
||||||
|
@ -1875,17 +1875,11 @@ msdosfs_pathconf(struct vop_pathconf_args *ap)
|
|||||||
case _PC_NAME_MAX:
|
case _PC_NAME_MAX:
|
||||||
*ap->a_retval = pmp->pm_flags & MSDOSFSMNT_LONGNAME ? WIN_MAXLEN : 12;
|
*ap->a_retval = pmp->pm_flags & MSDOSFSMNT_LONGNAME ? WIN_MAXLEN : 12;
|
||||||
return (0);
|
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:
|
case _PC_NO_TRUNC:
|
||||||
*ap->a_retval = 0;
|
*ap->a_retval = 0;
|
||||||
return (0);
|
return (0);
|
||||||
default:
|
default:
|
||||||
return (EINVAL);
|
return (vop_stdpathconf(ap));
|
||||||
}
|
}
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
}
|
}
|
||||||
|
@ -2236,21 +2236,6 @@ nandfs_pathconf(struct vop_pathconf_args *ap)
|
|||||||
|
|
||||||
error = 0;
|
error = 0;
|
||||||
switch (ap->a_name) {
|
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:
|
case _PC_NO_TRUNC:
|
||||||
*ap->a_retval = 1;
|
*ap->a_retval = 1;
|
||||||
break;
|
break;
|
||||||
@ -2273,7 +2258,7 @@ nandfs_pathconf(struct vop_pathconf_args *ap)
|
|||||||
*ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize;
|
*ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
error = EINVAL;
|
error = vop_stdpathconf(ap);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return (error);
|
return (error);
|
||||||
|
@ -3481,12 +3481,6 @@ nfs_pathconf(struct vop_pathconf_args *ap)
|
|||||||
case _PC_NAME_MAX:
|
case _PC_NAME_MAX:
|
||||||
*ap->a_retval = pc.pc_namemax;
|
*ap->a_retval = pc.pc_namemax;
|
||||||
break;
|
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:
|
case _PC_CHOWN_RESTRICTED:
|
||||||
*ap->a_retval = pc.pc_chownrestricted;
|
*ap->a_retval = pc.pc_chownrestricted;
|
||||||
break;
|
break;
|
||||||
@ -3512,11 +3506,6 @@ nfs_pathconf(struct vop_pathconf_args *ap)
|
|||||||
case _PC_MAC_PRESENT:
|
case _PC_MAC_PRESENT:
|
||||||
*ap->a_retval = 0;
|
*ap->a_retval = 0;
|
||||||
break;
|
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:
|
case _PC_PRIO_IO:
|
||||||
*ap->a_retval = 0;
|
*ap->a_retval = 0;
|
||||||
break;
|
break;
|
||||||
@ -3549,7 +3538,7 @@ nfs_pathconf(struct vop_pathconf_args *ap)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
error = EINVAL;
|
error = vop_stdpathconf(ap);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return (error);
|
return (error);
|
||||||
|
@ -907,7 +907,7 @@ smbfs_pathconf (ap)
|
|||||||
*retval = 800; /* XXX: a correct one ? */
|
*retval = 800; /* XXX: a correct one ? */
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
error = EINVAL;
|
error = vop_stdpathconf(ap);
|
||||||
}
|
}
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
@ -1344,26 +1344,6 @@ tmpfs_pathconf(struct vop_pathconf_args *v)
|
|||||||
error = 0;
|
error = 0;
|
||||||
|
|
||||||
switch (name) {
|
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:
|
case _PC_NO_TRUNC:
|
||||||
*retval = 1;
|
*retval = 1;
|
||||||
break;
|
break;
|
||||||
@ -1377,7 +1357,7 @@ tmpfs_pathconf(struct vop_pathconf_args *v)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
error = EINVAL;
|
error = vop_stdpathconf(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
|
@ -2442,21 +2442,9 @@ ufs_pathconf(ap)
|
|||||||
|
|
||||||
error = 0;
|
error = 0;
|
||||||
switch (ap->a_name) {
|
switch (ap->a_name) {
|
||||||
case _PC_LINK_MAX:
|
|
||||||
*ap->a_retval = LINK_MAX;
|
|
||||||
break;
|
|
||||||
case _PC_NAME_MAX:
|
case _PC_NAME_MAX:
|
||||||
*ap->a_retval = UFS_MAXNAMLEN;
|
*ap->a_retval = UFS_MAXNAMLEN;
|
||||||
break;
|
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:
|
case _PC_NO_TRUNC:
|
||||||
*ap->a_retval = 1;
|
*ap->a_retval = 1;
|
||||||
break;
|
break;
|
||||||
@ -2505,11 +2493,6 @@ ufs_pathconf(ap)
|
|||||||
case _PC_MIN_HOLE_SIZE:
|
case _PC_MIN_HOLE_SIZE:
|
||||||
*ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize;
|
*ap->a_retval = ap->a_vp->v_mount->mnt_stat.f_iosize;
|
||||||
break;
|
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:
|
case _PC_PRIO_IO:
|
||||||
*ap->a_retval = 0;
|
*ap->a_retval = 0;
|
||||||
break;
|
break;
|
||||||
@ -2539,7 +2522,7 @@ ufs_pathconf(ap)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
error = EINVAL;
|
error = vop_stdpathconf(ap);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return (error);
|
return (error);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user