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
sys
fs
cd9660
ext2fs
fifofs
msdosfs
nandfs
nfsclient
smbfs
tmpfs
ufs/ufs
@ -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 */
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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.
|
||||
*/
|
||||
|
@ -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 */
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -907,7 +907,7 @@ smbfs_pathconf (ap)
|
||||
*retval = 800; /* XXX: a correct one ? */
|
||||
break;
|
||||
default:
|
||||
error = EINVAL;
|
||||
error = vop_stdpathconf(ap);
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user