1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-14 14:55:41 +00:00

Revert revision 224079 as Rick pointed out that I would be calling VOP_PATHCONF

without the vnode lock held.

Implicitly approved by: zml (mentor)
This commit is contained in:
Zack Kirsch 2011-07-17 03:44:05 +00:00
parent 4089603c38
commit 061c683cc2
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=224121
2 changed files with 6 additions and 13 deletions

View File

@ -554,7 +554,7 @@ nfs_supportsnfsv4acls(struct vnode *vp)
if (nfsrv_useacl == 0)
return (0);
error = nfsvno_pathconf(vp, _PC_ACL_NFS4, &retval, NULL, NULL);
error = VOP_PATHCONF(vp, _PC_ACL_NFS4, &retval);
if (error == 0 && retval != 0)
return (1);
return (0);

View File

@ -795,7 +795,6 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp,
struct dqblk dqb;
uid_t savuid;
#endif
register_t chownres;
if (compare) {
retnotsup = 0;
@ -1038,7 +1037,8 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp,
acl_free(naclp);
goto nfsmout;
}
if (aceerr || nfsrv_compareacl(aclp, naclp))
if (aceerr || aclp == NULL ||
nfsrv_compareacl(aclp, naclp))
*retcmpp = NFSERR_NOTSAME;
acl_free(naclp);
} else {
@ -1128,12 +1128,8 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp,
NFSM_DISSECT(tl, u_int32_t *, NFSX_UNSIGNED);
if (compare) {
if (!(*retcmpp)) {
error = nfsvno_pathconf(vp,
_PC_CHOWN_RESTRICTED, &chownres,
nd->nd_cred, p);
if (*tl != (chownres != 0 ?
newnfs_true : newnfs_false))
*retcmpp = NFSERR_NOTSAME;
if (*tl != newnfs_true)
*retcmpp = NFSERR_NOTSAME;
}
} else if (pc != NULL) {
pc->pc_chownrestricted =
@ -1987,7 +1983,6 @@ nfsv4_fillattr(struct nfsrv_descript *nd, struct mount *mp, vnode_t vp,
struct dqblk dqb;
uid_t savuid;
#endif
register_t chownres;
/*
* First, set the bits that can be filled and get fsinfo.
@ -2167,9 +2162,7 @@ nfsv4_fillattr(struct nfsrv_descript *nd, struct mount *mp, vnode_t vp,
break;
case NFSATTRBIT_CHOWNRESTRICTED:
NFSM_BUILD(tl, u_int32_t *, NFSX_UNSIGNED);
error = nfsvno_pathconf(vp, _PC_CHOWN_RESTRICTED,
&chownres, nd->nd_cred, p);
*tl = (chownres ? newnfs_true : newnfs_false);
*tl = newnfs_true;
retnum += NFSX_UNSIGNED;
break;
case NFSATTRBIT_FILEHANDLE: