1
0
mirror of https://github.com/openbsd/src.git synced 2026-06-18 07:13:36 +02:00

make nfsm_srvpostop_attr() take an mbuf argument

ok miod@
This commit is contained in:
jsg
2026-06-09 02:40:16 +00:00
parent 27b0ee1e96
commit 4da49fe8b6
3 changed files with 39 additions and 39 deletions
+32 -32
View File
@@ -1,4 +1,4 @@
/* $OpenBSD: nfs_serv.c,v 1.134 2026/06/09 02:38:24 jsg Exp $ */
/* $OpenBSD: nfs_serv.c,v 1.135 2026/06/09 02:40:16 jsg Exp $ */
/* $NetBSD: nfs_serv.c,v 1.34 1997/05/12 23:37:12 fvdl Exp $ */
/*
@@ -174,7 +174,7 @@ nfsrv3_access(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_UNSIGNED) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, 1, NULL, &info);
nfsm_srvpostop_attr(nfsd, 1, NULL, &info.nmi_mb);
error = 0;
goto nfsmout;
}
@@ -202,7 +202,7 @@ nfsrv3_access(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_POSTOPATTR(1) + NFSX_UNSIGNED) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &va, &info);
nfsm_srvpostop_attr(nfsd, getret, &va, &info.nmi_mb);
tl = nfsm_build(&info.nmi_mb, NFSX_UNSIGNED);
*tl = txdr_unsigned(nfsmode);
nfsmout:
@@ -495,7 +495,7 @@ nfsrv_lookup(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_POSTOPATTR(info.nmi_v3)) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, dirattr_ret, &dirattr, &info);
nfsm_srvpostop_attr(nfsd, dirattr_ret, &dirattr, &info.nmi_mb);
return (0);
}
vrele(nd.ni_startdir);
@@ -512,14 +512,14 @@ nfsrv_lookup(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
NFSX_POSTOPATTR(info.nmi_v3)) != 0)
return 0;
if (error) {
nfsm_srvpostop_attr(nfsd, dirattr_ret, &dirattr, &info);
nfsm_srvpostop_attr(nfsd, dirattr_ret, &dirattr, &info.nmi_mb);
error = 0;
goto nfsmout;
}
nfsm_srvfhtom(&info.nmi_mb, fhp, info.nmi_v3);
if (v3) {
nfsm_srvpostop_attr(nfsd, 0, &va, &info);
nfsm_srvpostop_attr(nfsd, dirattr_ret, &dirattr, &info);
nfsm_srvpostop_attr(nfsd, 0, &va, &info.nmi_mb);
nfsm_srvpostop_attr(nfsd, dirattr_ret, &dirattr, &info.nmi_mb);
} else {
fp = nfsm_build(&info.nmi_mb, NFSX_V2FATTR);
nfsm_srvfattr(nfsd, &va, fp);
@@ -569,7 +569,7 @@ nfsrv_readlink(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
2 * NFSX_UNSIGNED) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, 1, NULL, &info);
nfsm_srvpostop_attr(nfsd, 1, NULL, &info.nmi_mb);
error = 0;
goto nfsmout;
}
@@ -606,7 +606,7 @@ out:
NFSX_POSTOPATTR(info.nmi_v3) + NFSX_UNSIGNED) != 0)
return 0;
if (info.nmi_v3) {
nfsm_srvpostop_attr(nfsd, getret, &attr, &info);
nfsm_srvpostop_attr(nfsd, getret, &attr, &info.nmi_mb);
if (error) {
error = 0;
goto nfsmout;
@@ -808,7 +808,7 @@ vbad:
bad:
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error, 0) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &va, &info);
nfsm_srvpostop_attr(nfsd, getret, &va, &info.nmi_mb);
return (0);
}
@@ -1279,7 +1279,7 @@ nfsrv_create(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (info.nmi_v3) {
if (!error) {
nfsm_srvpostop_fh(&info, fhp);
nfsm_srvpostop_attr(nfsd, 0, &va, &info);
nfsm_srvpostop_attr(nfsd, 0, &va, &info.nmi_mb);
}
nfsm_srvwcc(nfsd, dirfor_ret, &dirfor, diraft_ret, &diraft,
&info);
@@ -1471,7 +1471,7 @@ out:
return 0;
if (!error) {
nfsm_srvpostop_fh(&info, fhp);
nfsm_srvpostop_attr(nfsd, 0, &va, &info);
nfsm_srvpostop_attr(nfsd, 0, &va, &info.nmi_mb);
}
nfsm_srvwcc(nfsd, dirfor_ret, &dirfor, diraft_ret, &diraft, &info);
return (0);
@@ -1860,7 +1860,7 @@ nfsrv_link(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
NFSX_POSTOPATTR(info.nmi_v3) +
NFSX_WCCDATA(info.nmi_v3)) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
nfsm_srvwcc(nfsd, dirfor_ret, &dirfor, diraft_ret, &diraft,
&info);
error = 0;
@@ -1916,7 +1916,7 @@ out1:
NFSX_POSTOPATTR(info.nmi_v3) + NFSX_WCCDATA(info.nmi_v3)) != 0)
return 0;
if (info.nmi_v3) {
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
nfsm_srvwcc(nfsd, dirfor_ret, &dirfor, diraft_ret, &diraft,
&info);
error = 0;
@@ -2068,7 +2068,7 @@ out:
if (info.nmi_v3) {
if (!error) {
nfsm_srvpostop_fh(&info, fhp);
nfsm_srvpostop_attr(nfsd, 0, &va, &info);
nfsm_srvpostop_attr(nfsd, 0, &va, &info.nmi_mb);
}
nfsm_srvwcc(nfsd, dirfor_ret, &dirfor, diraft_ret, &diraft,
&info);
@@ -2207,7 +2207,7 @@ out:
if (info.nmi_v3) {
if (!error) {
nfsm_srvpostop_fh(&info, fhp);
nfsm_srvpostop_attr(nfsd, 0, &va, &info);
nfsm_srvpostop_attr(nfsd, 0, &va, &info.nmi_mb);
}
nfsm_srvwcc(nfsd, dirfor_ret, &dirfor, diraft_ret, &diraft,
&info);
@@ -2456,7 +2456,7 @@ nfsrv_readdir(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_UNSIGNED) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
error = 0;
goto nfsmout;
}
@@ -2469,7 +2469,7 @@ nfsrv_readdir(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_POSTOPATTR(info.nmi_v3)) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
error = 0;
goto nfsmout;
}
@@ -2504,7 +2504,7 @@ again:
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_POSTOPATTR(info.nmi_v3)) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
error = 0;
goto nfsmout;
}
@@ -2523,7 +2523,7 @@ again:
2 * NFSX_UNSIGNED) != 0)
return 0;
if (info.nmi_v3) {
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
tl = nfsm_build(&info.nmi_mb, 4 * NFSX_UNSIGNED);
txdr_hyper(at.va_filerev, tl);
tl += 2;
@@ -2561,7 +2561,7 @@ again:
NFSX_COOKIEVERF(info.nmi_v3) + siz) != 0)
return 0;
if (info.nmi_v3) {
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
tl = nfsm_build(&info.nmi_mb, 2 * NFSX_UNSIGNED);
txdr_hyper(at.va_filerev, tl);
}
@@ -2682,7 +2682,7 @@ nfsrv_readdirplus(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_UNSIGNED) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
error = 0;
goto nfsmout;
}
@@ -2694,7 +2694,7 @@ nfsrv_readdirplus(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_V3POSTOPATTR) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
error = 0;
goto nfsmout;
}
@@ -2729,7 +2729,7 @@ again:
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_V3POSTOPATTR) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
error = 0;
goto nfsmout;
}
@@ -2746,7 +2746,7 @@ again:
NFSX_V3POSTOPATTR + NFSX_V3COOKIEVERF +
2 * NFSX_UNSIGNED) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
tl = nfsm_build(&info.nmi_mb, 4 * NFSX_UNSIGNED);
txdr_hyper(at.va_filerev, tl);
tl += 2;
@@ -2791,7 +2791,7 @@ again:
dirlen = len = NFSX_V3POSTOPATTR + NFSX_V3COOKIEVERF + 2 * NFSX_UNSIGNED;
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error, cnt) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
tl = nfsm_build(&info.nmi_mb, 2 * NFSX_UNSIGNED);
txdr_hyper(at.va_filerev, tl);
@@ -2995,7 +2995,7 @@ nfsrv_statfs(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_UNSIGNED) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
error = 0;
goto nfsmout;
}
@@ -3007,7 +3007,7 @@ nfsrv_statfs(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
NFSX_POSTOPATTR(info.nmi_v3) + NFSX_STATFS(info.nmi_v3)) != 0)
return 0;
if (info.nmi_v3)
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
if (error) {
error = 0;
goto nfsmout;
@@ -3076,7 +3076,7 @@ nfsrv_fsinfo(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_UNSIGNED) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
error = 0;
goto nfsmout;
}
@@ -3085,7 +3085,7 @@ nfsrv_fsinfo(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_V3POSTOPATTR + NFSX_V3FSINFO) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
sip = nfsm_build(&info.nmi_mb, NFSX_V3FSINFO);
/*
@@ -3152,7 +3152,7 @@ nfsrv_pathconf(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_UNSIGNED) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
error = 0;
goto nfsmout;
}
@@ -3168,7 +3168,7 @@ nfsrv_pathconf(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp,
if (nfsm_reply(&info, nfsd, slp, mrq, &info.nmi_mb, error,
NFSX_V3POSTOPATTR + NFSX_V3PATHCONF) != 0)
return 0;
nfsm_srvpostop_attr(nfsd, getret, &at, &info);
nfsm_srvpostop_attr(nfsd, getret, &at, &info.nmi_mb);
if (error) {
error = 0;
goto nfsmout;
+5 -5
View File
@@ -1,4 +1,4 @@
/* $OpenBSD: nfs_srvsubs.c,v 1.2 2024/09/18 05:21:19 jsg Exp $ */
/* $OpenBSD: nfs_srvsubs.c,v 1.3 2026/06/09 02:40:16 jsg Exp $ */
/* $NetBSD: nfs_subs.c,v 1.27.4.3 1996/07/08 20:34:24 jtc Exp $ */
/*
@@ -253,21 +253,21 @@ nfsm_srvwcc(struct nfsrv_descript *nfsd, int before_ret,
tl += 2;
txdr_nfsv3time(&(before_vap->va_ctime), tl);
}
nfsm_srvpostop_attr(nfsd, after_ret, after_vap, info);
nfsm_srvpostop_attr(nfsd, after_ret, after_vap, &info->nmi_mb);
}
void
nfsm_srvpostop_attr(struct nfsrv_descript *nfsd, int after_ret,
struct vattr *after_vap, struct nfsm_info *info)
struct vattr *after_vap, struct mbuf **mb)
{
u_int32_t *tl;
struct nfs_fattr *fp;
if (after_ret) {
tl = nfsm_build(&info->nmi_mb, NFSX_UNSIGNED);
tl = nfsm_build(mb, NFSX_UNSIGNED);
*tl = nfs_false;
} else {
tl = nfsm_build(&info->nmi_mb, NFSX_UNSIGNED + NFSX_V3FATTR);
tl = nfsm_build(mb, NFSX_UNSIGNED + NFSX_V3FATTR);
*tl++ = nfs_true;
fp = (struct nfs_fattr *)tl;
nfsm_srvfattr(nfsd, after_vap, fp);
+2 -2
View File
@@ -1,4 +1,4 @@
/* $OpenBSD: nfs_var.h,v 1.67 2026/04/22 01:43:48 jsg Exp $ */
/* $OpenBSD: nfs_var.h,v 1.68 2026/06/09 02:40:16 jsg Exp $ */
/* $NetBSD: nfs_var.h,v 1.3 1996/02/18 11:53:54 fvdl Exp $ */
/*
@@ -148,7 +148,7 @@ void nfsm_adj(struct mbuf *, int, int);
void nfsm_srvwcc(struct nfsrv_descript *, int, struct vattr *, int,
struct vattr *, struct nfsm_info *);
void nfsm_srvpostop_attr(struct nfsrv_descript *, int, struct vattr *,
struct nfsm_info *);
struct mbuf **);
void nfsm_srvfattr(struct nfsrv_descript *, struct vattr *,
struct nfs_fattr *);
int nfsrv_fhtovp(fhandle_t *, int, struct vnode **, struct ucred *,