Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F153981084
D32453.id96668.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
32 KB
Referenced Files
None
Subscribers
None
D32453.id96668.diff
View Options
Index: sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c
===================================================================
--- sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c
+++ sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c
@@ -1324,7 +1324,6 @@
cnp->cn_flags = ISLASTCN | SAVENAME;
cnp->cn_lkflags = LK_EXCLUSIVE | LK_RETRY;
cnp->cn_cred = kcred;
- cnp->cn_thread = curthread;
if (zfsvfs->z_use_namecache && !zfsvfs->z_replay) {
struct vop_lookup_args a;
@@ -4579,7 +4578,7 @@
strlcpy(nm, cnp->cn_nameptr, MIN(cnp->cn_namelen + 1, sizeof (nm)));
return (zfs_lookup(ap->a_dvp, nm, ap->a_vpp, cnp, cnp->cn_nameiop,
- cnp->cn_cred, cnp->cn_thread, 0, cached));
+ cnp->cn_cred, curthread, 0, cached));
}
static int
Index: sys/fs/autofs/autofs_vnops.c
===================================================================
--- sys/fs/autofs/autofs_vnops.c
+++ sys/fs/autofs/autofs_vnops.c
@@ -250,7 +250,7 @@
}
if (autofs_cached(anp, cnp->cn_nameptr, cnp->cn_namelen) == false &&
- autofs_ignore_thread(cnp->cn_thread) == false) {
+ autofs_ignore_thread(curthread) == false) {
error = autofs_trigger_vn(dvp,
cnp->cn_nameptr, cnp->cn_namelen, &newvp);
if (error != 0)
Index: sys/fs/devfs/devfs_vnops.c
===================================================================
--- sys/fs/devfs/devfs_vnops.c
+++ sys/fs/devfs/devfs_vnops.c
@@ -1044,11 +1044,11 @@
int error, flags, nameiop, dvplocked;
char specname[SPECNAMELEN + 1], *pname;
+ td = curthread;
cnp = ap->a_cnp;
vpp = ap->a_vpp;
dvp = ap->a_dvp;
pname = cnp->cn_nameptr;
- td = cnp->cn_thread;
flags = cnp->cn_flags;
nameiop = cnp->cn_nameiop;
mp = dvp->v_mount;
Index: sys/fs/ext2fs/ext2_lookup.c
===================================================================
--- sys/fs/ext2fs/ext2_lookup.c
+++ sys/fs/ext2fs/ext2_lookup.c
@@ -492,7 +492,7 @@
* Access for write is interpreted as allowing
* creation of files in the directory.
*/
- if ((error = VOP_ACCESS(vdp, VWRITE, cred, cnp->cn_thread)) != 0)
+ if ((error = VOP_ACCESS(vdp, VWRITE, cred, curthread)) != 0)
return (error);
/*
* Return an indication of where the new directory
@@ -571,7 +571,7 @@
/*
* Write access to directory required to delete files.
*/
- if ((error = VOP_ACCESS(vdp, VWRITE, cred, cnp->cn_thread)) != 0)
+ if ((error = VOP_ACCESS(vdp, VWRITE, cred, curthread)) != 0)
return (error);
/*
* Return pointer to current entry in dp->i_offset,
@@ -623,7 +623,7 @@
* regular file, or empty directory.
*/
if (nameiop == RENAME && (flags & ISLASTCN)) {
- if ((error = VOP_ACCESS(vdp, VWRITE, cred, cnp->cn_thread)) != 0)
+ if ((error = VOP_ACCESS(vdp, VWRITE, cred, curthread)) != 0)
return (error);
/*
* Careful about locking second inode.
@@ -992,7 +992,7 @@
error = ext2_add_entry(dvp, &newdir);
if (!error && dp->i_endoff && dp->i_endoff < dp->i_size)
error = ext2_truncate(dvp, (off_t)dp->i_endoff, IO_SYNC,
- cnp->cn_cred, cnp->cn_thread);
+ cnp->cn_cred, curthread);
return (error);
}
Index: sys/fs/ext2fs/ext2_vnops.c
===================================================================
--- sys/fs/ext2fs/ext2_vnops.c
+++ sys/fs/ext2fs/ext2_vnops.c
@@ -906,7 +906,7 @@
* to namei, as the parent directory is unlocked by the
* call to checkpath().
*/
- error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_thread);
+ error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, curthread);
VOP_UNLOCK(fvp);
if (oldparent != dp->i_number)
newparent = dp->i_number;
@@ -1031,7 +1031,7 @@
if (xp->i_nlink > 2)
panic("ext2_rename: linked directory");
error = ext2_truncate(tvp, (off_t)0, IO_SYNC,
- tcnp->cn_cred, tcnp->cn_thread);
+ tcnp->cn_cred, curthread);
xp->i_nlink = 0;
}
xp->i_flag |= IN_CHANGE;
@@ -1424,7 +1424,7 @@
#ifdef UFS_ACL
if (dvp->v_mount->mnt_flag & MNT_ACLS) {
error = ext2_do_posix1e_acl_inheritance_dir(dvp, tvp, dmode,
- cnp->cn_cred, cnp->cn_thread);
+ cnp->cn_cred, curthread);
if (error)
goto bad;
}
@@ -1504,7 +1504,7 @@
*/
ip->i_nlink = 0;
error = ext2_truncate(vp, (off_t)0, IO_SYNC, cnp->cn_cred,
- cnp->cn_thread);
+ curthread);
cache_purge(ITOV(ip));
if (vn_lock(dvp, LK_EXCLUSIVE | LK_NOWAIT) != 0) {
VOP_UNLOCK(vp);
@@ -2004,7 +2004,7 @@
#ifdef UFS_ACL
if (dvp->v_mount->mnt_flag & MNT_ACLS) {
error = ext2_do_posix1e_acl_inheritance_file(dvp, tvp, mode,
- cnp->cn_cred, cnp->cn_thread);
+ cnp->cn_cred, curthread);
if (error)
goto bad;
}
Index: sys/fs/fdescfs/fdesc_vnops.c
===================================================================
--- sys/fs/fdescfs/fdesc_vnops.c
+++ sys/fs/fdescfs/fdesc_vnops.c
@@ -293,7 +293,7 @@
struct vnode *dvp = ap->a_dvp;
struct componentname *cnp = ap->a_cnp;
char *pname = cnp->cn_nameptr;
- struct thread *td = cnp->cn_thread;
+ struct thread *td = curthread;
struct file *fp;
struct fdesc_get_ino_args arg;
int nlen = cnp->cn_namelen;
Index: sys/fs/fuse/fuse_internal.c
===================================================================
--- sys/fs/fuse/fuse_internal.c
+++ sys/fs/fuse/fuse_internal.c
@@ -477,7 +477,6 @@
cn.cn_nameiop = LOOKUP;
cn.cn_flags = 0; /* !MAKEENTRY means free cached entry */
- cn.cn_thread = curthread;
cn.cn_cred = curthread->td_ucred;
cn.cn_lkflags = LK_SHARED;
cn.cn_pnbuf = NULL;
@@ -729,7 +728,7 @@
int err = 0;
fdisp_init(&fdi, cnp->cn_namelen + 1);
- fdisp_make_vp(&fdi, op, dvp, cnp->cn_thread, cnp->cn_cred);
+ fdisp_make_vp(&fdi, op, dvp, curthread, cnp->cn_cred);
memcpy(fdi.indata, cnp->cn_nameptr, cnp->cn_namelen);
((char *)fdi.indata)[cnp->cn_namelen] = '\0';
@@ -781,7 +780,7 @@
int err = 0;
fdisp_init(&fdi, sizeof(*fri) + fcnp->cn_namelen + tcnp->cn_namelen + 2);
- fdisp_make_vp(&fdi, FUSE_RENAME, fdvp, tcnp->cn_thread, tcnp->cn_cred);
+ fdisp_make_vp(&fdi, FUSE_RENAME, fdvp, curthread, tcnp->cn_cred);
fri = fdi.indata;
fri->newdir = VTOI(tdvp);
@@ -813,7 +812,7 @@
{
fdip->iosize = bufsize + cnp->cn_namelen + 1;
- fdisp_make(fdip, op, mp, dnid, cnp->cn_thread, cnp->cn_cred);
+ fdisp_make(fdip, op, mp, dnid, curthread, cnp->cn_cred);
memcpy(fdip->indata, buf, bufsize);
memcpy((char *)fdip->indata + bufsize, cnp->cn_nameptr, cnp->cn_namelen);
((char *)fdip->indata)[bufsize + cnp->cn_namelen] = '\0';
@@ -840,7 +839,7 @@
}
err = fuse_vnode_get(mp, feo, feo->nodeid, dvp, vpp, cnp, vtyp);
if (err) {
- fuse_internal_forget_send(mp, cnp->cn_thread, cnp->cn_cred,
+ fuse_internal_forget_send(mp, curthread, cnp->cn_cred,
feo->nodeid, 1);
return err;
}
Index: sys/fs/fuse/fuse_node.c
===================================================================
--- sys/fs/fuse/fuse_node.c
+++ sys/fs/fuse/fuse_node.c
@@ -286,7 +286,7 @@
struct componentname *cnp,
enum vtype vtyp)
{
- struct thread *td = (cnp != NULL ? cnp->cn_thread : curthread);
+ struct thread *td = curthread;
/*
* feo should only be NULL for the root directory, which (when libfuse
* is used) always has generation 0
Index: sys/fs/fuse/fuse_vnops.c
===================================================================
--- sys/fs/fuse/fuse_vnops.c
+++ sys/fs/fuse/fuse_vnops.c
@@ -788,7 +788,7 @@
struct vnode **vpp = ap->a_vpp;
struct componentname *cnp = ap->a_cnp;
struct vattr *vap = ap->a_vap;
- struct thread *td = cnp->cn_thread;
+ struct thread *td = curthread;
struct ucred *cred = cnp->cn_cred;
struct fuse_data *data;
@@ -1203,7 +1203,7 @@
struct vnode *dvp = ap->a_dvp;
struct vnode **vpp = ap->a_vpp;
struct componentname *cnp = ap->a_cnp;
- struct thread *td = cnp->cn_thread;
+ struct thread *td = curthread;
struct ucred *cred = cnp->cn_cred;
int nameiop = cnp->cn_nameiop;
@@ -1849,7 +1849,7 @@
data = fuse_get_mpdata(vnode_mount(tdvp));
if (data->dataflags & FSESS_DEFAULT_PERMISSIONS && isdir && newparent) {
err = fuse_internal_access(fvp, VWRITE,
- tcnp->cn_thread, tcnp->cn_cred);
+ curthread, tcnp->cn_cred);
if (err)
goto out;
}
Index: sys/fs/msdosfs/msdosfs_lookup.c
===================================================================
--- sys/fs/msdosfs/msdosfs_lookup.c
+++ sys/fs/msdosfs/msdosfs_lookup.c
@@ -381,7 +381,7 @@
* Access for write is interpreted as allowing
* creation of files in the directory.
*/
- error = VOP_ACCESS(vdp, VWRITE, cnp->cn_cred, cnp->cn_thread);
+ error = VOP_ACCESS(vdp, VWRITE, cnp->cn_cred, curthread);
if (error)
return (error);
/*
@@ -485,7 +485,7 @@
/*
* Write access to directory required to delete files.
*/
- error = VOP_ACCESS(vdp, VWRITE, cnp->cn_cred, cnp->cn_thread);
+ error = VOP_ACCESS(vdp, VWRITE, cnp->cn_cred, curthread);
if (error)
return (error);
@@ -515,7 +515,7 @@
if (blkoff == MSDOSFSROOT_OFS)
return (EBUSY);
- error = VOP_ACCESS(vdp, VWRITE, cnp->cn_cred, cnp->cn_thread);
+ error = VOP_ACCESS(vdp, VWRITE, cnp->cn_cred, curthread);
if (error)
return (error);
Index: sys/fs/msdosfs/msdosfs_vnops.c
===================================================================
--- sys/fs/msdosfs/msdosfs_vnops.c
+++ sys/fs/msdosfs/msdosfs_vnops.c
@@ -1109,7 +1109,7 @@
* to namei, as the parent directory is unlocked by the
* call to doscheckpath().
*/
- error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_thread);
+ error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, curthread);
if (fdip->de_StartCluster != tdip->de_StartCluster)
newparent = true;
if (doingdirectory && newparent) {
Index: sys/fs/nfsclient/nfs_clvnops.c
===================================================================
--- sys/fs/nfsclient/nfs_clvnops.c
+++ sys/fs/nfsclient/nfs_clvnops.c
@@ -1165,7 +1165,7 @@
struct nfsmount *nmp;
struct nfsnode *np, *newnp;
int error = 0, attrflag, dattrflag, ltype, ncticks;
- struct thread *td = cnp->cn_thread;
+ struct thread *td = curthread;
struct nfsfh *nfhp;
struct nfsvattr dnfsva, nfsva;
struct vattr vattr;
@@ -1596,17 +1596,17 @@
if ((error = VOP_GETATTR(dvp, &vattr, cnp->cn_cred)))
return (error);
error = nfsrpc_mknod(dvp, cnp->cn_nameptr, cnp->cn_namelen, vap,
- rdev, vap->va_type, cnp->cn_cred, cnp->cn_thread, &dnfsva,
+ rdev, vap->va_type, cnp->cn_cred, curthread, &dnfsva,
&nfsva, &nfhp, &attrflag, &dattrflag, NULL);
if (!error) {
if (!nfhp)
(void) nfsrpc_lookup(dvp, cnp->cn_nameptr,
- cnp->cn_namelen, cnp->cn_cred, cnp->cn_thread,
+ cnp->cn_namelen, cnp->cn_cred, curthread,
&dnfsva, &nfsva, &nfhp, &attrflag, &dattrflag,
NULL, 0);
if (nfhp)
error = nfscl_nget(dvp->v_mount, dvp, nfhp, cnp,
- cnp->cn_thread, &np, NULL, LK_EXCLUSIVE);
+ curthread, &np, NULL, LK_EXCLUSIVE);
}
if (dattrflag)
(void) nfscl_loadattrcache(&dvp, &dnfsva, NULL, NULL, 0, 1);
@@ -1622,7 +1622,7 @@
if (!error) {
*vpp = newvp;
} else if (NFS_ISV4(dvp)) {
- error = nfscl_maperr(cnp->cn_thread, error, vap->va_uid,
+ error = nfscl_maperr(curthread, error, vap->va_uid,
vap->va_gid);
}
dnp = VTONFS(dvp);
@@ -1712,17 +1712,17 @@
cverf = nfs_get_cverf();
error = nfsrpc_create(dvp, cnp->cn_nameptr, cnp->cn_namelen,
- vap, cverf, fmode, cnp->cn_cred, cnp->cn_thread, &dnfsva, &nfsva,
+ vap, cverf, fmode, cnp->cn_cred, curthread, &dnfsva, &nfsva,
&nfhp, &attrflag, &dattrflag, NULL);
if (!error) {
if (nfhp == NULL)
(void) nfsrpc_lookup(dvp, cnp->cn_nameptr,
- cnp->cn_namelen, cnp->cn_cred, cnp->cn_thread,
+ cnp->cn_namelen, cnp->cn_cred, curthread,
&dnfsva, &nfsva, &nfhp, &attrflag, &dattrflag,
NULL, 0);
if (nfhp != NULL)
error = nfscl_nget(dvp->v_mount, dvp, nfhp, cnp,
- cnp->cn_thread, &np, NULL, LK_EXCLUSIVE);
+ curthread, &np, NULL, LK_EXCLUSIVE);
}
if (dattrflag)
(void) nfscl_loadattrcache(&dvp, &dnfsva, NULL, NULL, 0, 1);
@@ -1730,7 +1730,7 @@
newvp = NFSTOV(np);
if (attrflag == 0)
error = nfsrpc_getattr(newvp, cnp->cn_cred,
- cnp->cn_thread, &nfsva, NULL);
+ curthread, &nfsva, NULL);
if (error == 0)
error = nfscl_loadattrcache(&newvp, &nfsva, NULL, NULL,
0, 1);
@@ -1748,14 +1748,14 @@
} else if (NFS_ISV34(dvp) && (fmode & O_EXCL)) {
if (nfscl_checksattr(vap, &nfsva)) {
error = nfsrpc_setattr(newvp, vap, NULL, cnp->cn_cred,
- cnp->cn_thread, &nfsva, &attrflag, NULL);
+ curthread, &nfsva, &attrflag, NULL);
if (error && (vap->va_uid != (uid_t)VNOVAL ||
vap->va_gid != (gid_t)VNOVAL)) {
/* try again without setting uid/gid */
vap->va_uid = (uid_t)VNOVAL;
vap->va_gid = (uid_t)VNOVAL;
error = nfsrpc_setattr(newvp, vap, NULL,
- cnp->cn_cred, cnp->cn_thread, &nfsva,
+ cnp->cn_cred, curthread, &nfsva,
&attrflag, NULL);
}
if (attrflag)
@@ -1776,7 +1776,7 @@
}
*ap->a_vpp = newvp;
} else if (NFS_ISV4(dvp)) {
- error = nfscl_maperr(cnp->cn_thread, error, vap->va_uid,
+ error = nfscl_maperr(curthread, error, vap->va_uid,
vap->va_gid);
}
NFSLOCKNODE(dnp);
@@ -1829,11 +1829,11 @@
* throw away biocache buffers, mainly to avoid
* unnecessary delayed writes later.
*/
- error = ncl_vinvalbuf(vp, 0, cnp->cn_thread, 1);
+ error = ncl_vinvalbuf(vp, 0, curthread, 1);
if (error != EINTR && error != EIO)
/* Do the rpc */
error = nfs_removerpc(dvp, vp, cnp->cn_nameptr,
- cnp->cn_namelen, cnp->cn_cred, cnp->cn_thread);
+ cnp->cn_namelen, cnp->cn_cred, curthread);
/*
* Kludge City: If the first reply to the remove rpc is lost..
* the reply to the retransmitted request will be ENOENT
@@ -1953,10 +1953,10 @@
* that was written back to our cache earlier. Not checking for
* this condition can result in potential (silent) data loss.
*/
- error = VOP_FSYNC(fvp, MNT_WAIT, fcnp->cn_thread);
+ error = VOP_FSYNC(fvp, MNT_WAIT, curthread);
NFSVOPUNLOCK(fvp);
if (!error && tvp)
- error = VOP_FSYNC(tvp, MNT_WAIT, tcnp->cn_thread);
+ error = VOP_FSYNC(tvp, MNT_WAIT, curthread);
if (error)
goto out;
@@ -1973,7 +1973,7 @@
error = nfs_renamerpc(fdvp, fvp, fcnp->cn_nameptr, fcnp->cn_namelen,
tdvp, tvp, tcnp->cn_nameptr, tcnp->cn_namelen, tcnp->cn_cred,
- tcnp->cn_thread);
+ curthread);
if (error == 0 && NFS_ISV4(tdvp)) {
/*
@@ -2050,7 +2050,7 @@
return (nfs_renamerpc(sdvp, svp, scnp->cn_nameptr, scnp->cn_namelen,
sdvp, NULL, sp->s_name, sp->s_namlen, scnp->cn_cred,
- scnp->cn_thread));
+ curthread));
}
/*
@@ -2112,10 +2112,10 @@
* doesn't get "out of sync" with the server.
* XXX There should be a better way!
*/
- VOP_FSYNC(vp, MNT_WAIT, cnp->cn_thread);
+ VOP_FSYNC(vp, MNT_WAIT, curthread);
error = nfsrpc_link(tdvp, vp, cnp->cn_nameptr, cnp->cn_namelen,
- cnp->cn_cred, cnp->cn_thread, &dnfsva, &nfsva, &attrflag,
+ cnp->cn_cred, curthread, &dnfsva, &nfsva, &attrflag,
&dattrflag, NULL);
tdnp = VTONFS(tdvp);
NFSLOCKNODE(tdnp);
@@ -2152,7 +2152,7 @@
"the directory as the new link\n");
}
if (error && NFS_ISV4(vp))
- error = nfscl_maperr(cnp->cn_thread, error, (uid_t)0,
+ error = nfscl_maperr(curthread, error, (uid_t)0,
(gid_t)0);
return (error);
}
@@ -2174,10 +2174,10 @@
vap->va_type = VLNK;
error = nfsrpc_symlink(dvp, cnp->cn_nameptr, cnp->cn_namelen,
- ap->a_target, vap, cnp->cn_cred, cnp->cn_thread, &dnfsva,
+ ap->a_target, vap, cnp->cn_cred, curthread, &dnfsva,
&nfsva, &nfhp, &attrflag, &dattrflag, NULL);
if (nfhp) {
- ret = nfscl_nget(dvp->v_mount, dvp, nfhp, cnp, cnp->cn_thread,
+ ret = nfscl_nget(dvp->v_mount, dvp, nfhp, cnp, curthread,
&np, NULL, LK_EXCLUSIVE);
if (!ret)
newvp = NFSTOV(np);
@@ -2195,7 +2195,7 @@
* have to do a lookup in order to obtain a newvp to return.
*/
error = nfs_lookitup(dvp, cnp->cn_nameptr, cnp->cn_namelen,
- cnp->cn_cred, cnp->cn_thread, &np);
+ cnp->cn_cred, curthread, &np);
if (!error)
newvp = NFSTOV(np);
}
@@ -2203,7 +2203,7 @@
if (newvp)
vput(newvp);
if (NFS_ISV4(dvp))
- error = nfscl_maperr(cnp->cn_thread, error,
+ error = nfscl_maperr(curthread, error,
vap->va_uid, vap->va_gid);
} else {
*ap->a_vpp = newvp;
@@ -2258,7 +2258,7 @@
return (error);
vap->va_type = VDIR;
error = nfsrpc_mkdir(dvp, cnp->cn_nameptr, cnp->cn_namelen,
- vap, cnp->cn_cred, cnp->cn_thread, &dnfsva, &nfsva, &nfhp,
+ vap, cnp->cn_cred, curthread, &dnfsva, &nfsva, &nfhp,
&attrflag, &dattrflag, NULL);
dnp = VTONFS(dvp);
NFSLOCKNODE(dnp);
@@ -2272,7 +2272,7 @@
KDTRACE_NFS_ATTRCACHE_FLUSH_DONE(dvp);
}
if (nfhp) {
- ret = nfscl_nget(dvp->v_mount, dvp, nfhp, cnp, cnp->cn_thread,
+ ret = nfscl_nget(dvp->v_mount, dvp, nfhp, cnp, curthread,
&np, NULL, LK_EXCLUSIVE);
if (!ret) {
newvp = NFSTOV(np);
@@ -2284,7 +2284,7 @@
}
if (!error && newvp == NULL) {
error = nfs_lookitup(dvp, cnp->cn_nameptr, cnp->cn_namelen,
- cnp->cn_cred, cnp->cn_thread, &np);
+ cnp->cn_cred, curthread, &np);
if (!error) {
newvp = NFSTOV(np);
if (newvp->v_type != VDIR)
@@ -2295,7 +2295,7 @@
if (newvp)
vput(newvp);
if (NFS_ISV4(dvp))
- error = nfscl_maperr(cnp->cn_thread, error,
+ error = nfscl_maperr(curthread, error,
vap->va_uid, vap->va_gid);
} else {
/*
@@ -2336,7 +2336,7 @@
if (dvp == vp)
return (EINVAL);
error = nfsrpc_rmdir(dvp, cnp->cn_nameptr, cnp->cn_namelen,
- cnp->cn_cred, cnp->cn_thread, &dnfsva, &dattrflag, NULL);
+ cnp->cn_cred, curthread, &dnfsva, &dattrflag, NULL);
dnp = VTONFS(dvp);
NFSLOCKNODE(dnp);
dnp->n_flag |= NMODIFIED;
@@ -2352,7 +2352,7 @@
cache_purge(dvp);
cache_purge(vp);
if (error && NFS_ISV4(dvp))
- error = nfscl_maperr(cnp->cn_thread, error, (uid_t)0,
+ error = nfscl_maperr(curthread, error, (uid_t)0,
(gid_t)0);
/*
* Kludge: Map ENOENT => 0 assuming that you have a reply to a retry.
@@ -2591,14 +2591,14 @@
* The name is now changed to .nfs.<ticks>.<pid>.4, where ticks is
* CPU ticks since boot.
*/
- pid = cnp->cn_thread->td_proc->p_pid;
+ pid = curthread->td_proc->p_pid;
lticks = (unsigned int)ticks;
for ( ; ; ) {
sp->s_namlen = sprintf(sp->s_name,
".nfs.%08x.%04x4.4", lticks,
pid);
if (nfs_lookitup(dvp, sp->s_name, sp->s_namlen, sp->s_cred,
- cnp->cn_thread, NULL))
+ curthread, NULL))
break;
lticks++;
}
@@ -2606,7 +2606,7 @@
if (error)
goto bad;
error = nfs_lookitup(dvp, sp->s_name, sp->s_namlen, sp->s_cred,
- cnp->cn_thread, &np);
+ curthread, &np);
np->n_sillyrename = sp;
return (0);
bad:
Index: sys/fs/nfsserver/nfs_nfsdport.c
===================================================================
--- sys/fs/nfsserver/nfs_nfsdport.c
+++ sys/fs/nfsserver/nfs_nfsdport.c
@@ -661,7 +661,6 @@
* because lookup() will dereference ni_startdir.
*/
- cnp->cn_thread = curthread;
ndp->ni_startdir = dp;
ndp->ni_rootdir = rootvnode;
ndp->ni_topdir = NULL;
@@ -2526,7 +2525,6 @@
cn.cn_nameiop = LOOKUP;
cn.cn_lkflags = LK_SHARED | LK_RETRY;
cn.cn_cred = nd->nd_cred;
- cn.cn_thread = p;
} else if (r == 0)
vput(nvp);
}
@@ -2626,7 +2624,6 @@
LK_RETRY;
cn.cn_cred =
nd->nd_cred;
- cn.cn_thread = p;
}
cn.cn_nameptr = dp->d_name;
cn.cn_namelen = nlen;
@@ -4183,7 +4180,6 @@
LOCKPARENT | LOCKLEAF | SAVESTART | NOCACHE);
nfsvno_setpathbuf(&named, &bufp, &hashp);
named.ni_cnd.cn_lkflags = LK_EXCLUSIVE;
- named.ni_cnd.cn_thread = p;
named.ni_cnd.cn_nameptr = bufp;
if (fnamep != NULL) {
strlcpy(bufp, fnamep, PNFS_FILENAME_LEN + 1);
@@ -4567,7 +4563,6 @@
named.ni_cnd.cn_nameiop = DELETE;
named.ni_cnd.cn_lkflags = LK_EXCLUSIVE | LK_RETRY;
named.ni_cnd.cn_cred = tcred;
- named.ni_cnd.cn_thread = p;
named.ni_cnd.cn_flags = ISLASTCN | LOCKPARENT | LOCKLEAF | SAVENAME;
nfsvno_setpathbuf(&named, &bufp, &hashp);
named.ni_cnd.cn_nameptr = bufp;
@@ -6341,7 +6336,6 @@
named.ni_cnd.cn_nameiop = LOOKUP;
named.ni_cnd.cn_lkflags = LK_SHARED | LK_RETRY;
named.ni_cnd.cn_cred = tcred;
- named.ni_cnd.cn_thread = p;
named.ni_cnd.cn_flags = ISLASTCN | LOCKPARENT | LOCKLEAF | SAVENAME;
nfsvno_setpathbuf(&named, &bufp, &hashp);
named.ni_cnd.cn_nameptr = bufp;
Index: sys/fs/smbfs/smbfs_vnops.c
===================================================================
--- sys/fs/smbfs/smbfs_vnops.c
+++ sys/fs/smbfs/smbfs_vnops.c
@@ -560,7 +560,7 @@
if ((error = VOP_GETATTR(dvp, &vattr, cnp->cn_cred)))
return error;
scred = smbfs_malloc_scred();
- smb_makescred(scred, cnp->cn_thread, cnp->cn_cred);
+ smb_makescred(scred, curthread, cnp->cn_cred);
error = smbfs_smb_create(dnp, name, nmlen, scred);
if (error)
@@ -598,7 +598,7 @@
if (vp->v_type == VDIR || (np->n_flag & NOPEN) != 0 || vrefcnt(vp) != 1)
return EPERM;
scred = smbfs_malloc_scred();
- smb_makescred(scred, cnp->cn_thread, cnp->cn_cred);
+ smb_makescred(scred, curthread, cnp->cn_cred);
error = smbfs_smb_delete(np, scred);
if (error == 0)
np->n_flag |= NGONE;
@@ -652,7 +652,7 @@
return EINVAL;
}
scred = smbfs_malloc_scred();
- smb_makescred(scred, tcnp->cn_thread, tcnp->cn_cred);
+ smb_makescred(scred, curthread, tcnp->cn_cred);
/*
* It seems that Samba doesn't implement SMB_COM_MOVE call...
*/
@@ -769,7 +769,7 @@
if ((name[0] == '.') && ((len == 1) || ((len == 2) && (name[1] == '.'))))
return EEXIST;
scred = smbfs_malloc_scred();
- smb_makescred(scred, cnp->cn_thread, cnp->cn_cred);
+ smb_makescred(scred, curthread, cnp->cn_cred);
error = smbfs_smb_mkdir(dnp, name, len, scred);
if (error)
goto out;
@@ -809,7 +809,7 @@
return EINVAL;
scred = smbfs_malloc_scred();
- smb_makescred(scred, cnp->cn_thread, cnp->cn_cred);
+ smb_makescred(scred, curthread, cnp->cn_cred);
error = smbfs_smb_rmdir(np, scred);
if (error == 0)
np->n_flag |= NGONE;
@@ -1170,7 +1170,7 @@
} */ *ap;
{
struct componentname *cnp = ap->a_cnp;
- struct thread *td = cnp->cn_thread;
+ struct thread *td = curthread;
struct vnode *dvp = ap->a_dvp;
struct vnode **vpp = ap->a_vpp;
struct vnode *vp;
Index: sys/fs/tmpfs/tmpfs_vnops.c
===================================================================
--- sys/fs/tmpfs/tmpfs_vnops.c
+++ sys/fs/tmpfs/tmpfs_vnops.c
@@ -136,7 +136,7 @@
cnp->cn_flags & DOWHITEOUT &&
cnp->cn_flags & ISWHITEOUT))) {
error = VOP_ACCESS(dvp, VWRITE, cnp->cn_cred,
- cnp->cn_thread);
+ curthread);
if (error != 0)
goto out;
@@ -180,7 +180,7 @@
(cnp->cn_nameiop == DELETE ||
cnp->cn_nameiop == RENAME)) {
error = VOP_ACCESS(dvp, VWRITE, cnp->cn_cred,
- cnp->cn_thread);
+ curthread);
if (error != 0)
goto out;
@@ -192,8 +192,8 @@
if ((dnode->tn_mode & S_ISTXT) &&
VOP_ACCESS(dvp, VADMIN, cnp->cn_cred,
- cnp->cn_thread) && VOP_ACCESS(*vpp, VADMIN,
- cnp->cn_cred, cnp->cn_thread)) {
+ curthread) && VOP_ACCESS(*vpp, VADMIN,
+ cnp->cn_cred, curthread)) {
error = EPERM;
vput(*vpp);
*vpp = NULL;
Index: sys/fs/unionfs/union_subr.c
===================================================================
--- sys/fs/unionfs/union_subr.c
+++ sys/fs/unionfs/union_subr.c
@@ -630,7 +630,6 @@
cn->cn_nameiop = nameiop;
cn->cn_flags = (LOCKPARENT | LOCKLEAF | HASBUF | SAVENAME | ISLASTCN);
cn->cn_lkflags = LK_EXCLUSIVE;
- cn->cn_thread = td;
cn->cn_cred = cnp->cn_cred;
cn->cn_nameptr = cn->cn_pnbuf;
@@ -975,7 +974,6 @@
nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | HASBUF | SAVENAME |
ISLASTCN;
nd.ni_cnd.cn_lkflags = LK_EXCLUSIVE;
- nd.ni_cnd.cn_thread = td;
nd.ni_cnd.cn_cred = cred;
nd.ni_cnd.cn_nameptr = nd.ni_cnd.cn_pnbuf;
NDPREINIT(&nd);
@@ -1250,7 +1248,6 @@
cn.cn_flags = LOCKPARENT | LOCKLEAF | SAVENAME |
RDONLY | ISLASTCN;
cn.cn_lkflags = LK_EXCLUSIVE;
- cn.cn_thread = td;
cn.cn_cred = cred;
/*
Index: sys/kern/uipc_mqueue.c
===================================================================
--- sys/kern/uipc_mqueue.c
+++ sys/kern/uipc_mqueue.c
@@ -853,12 +853,12 @@
char *pname;
struct thread *td;
+ td = curthread;
cnp = ap->a_cnp;
vpp = ap->a_vpp;
dvp = ap->a_dvp;
pname = cnp->cn_nameptr;
namelen = cnp->cn_namelen;
- td = cnp->cn_thread;
flags = cnp->cn_flags;
nameiop = cnp->cn_nameiop;
pd = VTON(dvp);
@@ -869,7 +869,7 @@
if (dvp->v_type != VDIR)
return (ENOTDIR);
- error = VOP_ACCESS(dvp, VEXEC, cnp->cn_cred, cnp->cn_thread);
+ error = VOP_ACCESS(dvp, VEXEC, cnp->cn_cred, td);
if (error)
return (error);
Index: sys/kern/vfs_cache.c
===================================================================
--- sys/kern/vfs_cache.c
+++ sys/kern/vfs_cache.c
@@ -4219,7 +4219,7 @@
ndp = fpl->ndp;
cnp = fpl->cnp;
- td = cnp->cn_thread;
+ td = curthread;
if (!atomic_load_char(&cache_fast_lookup_enabled)) {
cache_fpl_aborted_early(fpl);
@@ -5984,7 +5984,6 @@
fpl.ndp = ndp;
fpl.cnp = cnp = &ndp->ni_cnd;
MPASS(ndp->ni_lcf == 0);
- MPASS(curthread == cnp->cn_thread);
KASSERT ((cnp->cn_flags & CACHE_FPL_INTERNAL_CN_FLAGS) == 0,
("%s: internal flags found in cn_flags %" PRIx64, __func__,
cnp->cn_flags));
Index: sys/kern/vfs_lookup.c
===================================================================
--- sys/kern/vfs_lookup.c
+++ sys/kern/vfs_lookup.c
@@ -294,7 +294,7 @@
bool startdir_used;
cnp = &ndp->ni_cnd;
- td = cnp->cn_thread;
+ td = curthread;
startdir_used = false;
*pwdp = NULL;
@@ -552,10 +552,8 @@
enum cache_fpl_status status;
cnp = &ndp->ni_cnd;
- td = cnp->cn_thread;
+ td = curthread;
#ifdef INVARIANTS
- KASSERT(cnp->cn_thread == curthread,
- ("namei not using curthread"));
KASSERT((ndp->ni_debugflags & NAMEI_DBG_CALLED) == 0,
("%s: repeated call to namei without NDREINIT", __func__));
KASSERT(ndp->ni_debugflags == NAMEI_DBG_INITED,
@@ -581,7 +579,7 @@
*/
cnp->cn_origflags = cnp->cn_flags;
#endif
- ndp->ni_cnd.cn_cred = ndp->ni_cnd.cn_thread->td_ucred;
+ ndp->ni_cnd.cn_cred = td->td_ucred;
KASSERT(ndp->ni_resflags == 0, ("%s: garbage in ni_resflags: %x\n",
__func__, ndp->ni_resflags));
KASSERT(cnp->cn_cred && td->td_proc, ("namei: bad cred/proc"));
@@ -1096,7 +1094,7 @@
*/
unionlookup:
#ifdef MAC
- error = mac_vnode_check_lookup(cnp->cn_thread->td_ucred, dp, cnp);
+ error = mac_vnode_check_lookup(cnp->cn_cred, dp, cnp);
if (error)
goto bad;
#endif
Index: sys/kern/vfs_subr.c
===================================================================
--- sys/kern/vfs_subr.c
+++ sys/kern/vfs_subr.c
@@ -6821,7 +6821,7 @@
return (0);
}
- return (VOP_ACCESS(vp, VEXEC, cnp->cn_cred, cnp->cn_thread));
+ return (VOP_ACCESS(vp, VEXEC, cnp->cn_cred, curthread));
}
/*
Index: sys/kern/vfs_vnops.c
===================================================================
--- sys/kern/vfs_vnops.c
+++ sys/kern/vfs_vnops.c
@@ -190,7 +190,7 @@
int
vn_open(struct nameidata *ndp, int *flagp, int cmode, struct file *fp)
{
- struct thread *td = ndp->ni_cnd.cn_thread;
+ struct thread *td = curthread;
return (vn_open_cred(ndp, flagp, cmode, 0, td->td_ucred, fp));
}
@@ -230,7 +230,6 @@
{
struct vnode *vp;
struct mount *mp;
- struct thread *td = ndp->ni_cnd.cn_thread;
struct vattr vat;
struct vattr *vap = &vat;
int fmode, error;
@@ -332,7 +331,7 @@
return (error);
vp = ndp->ni_vp;
}
- error = vn_open_vnode(vp, fmode, cred, td, fp);
+ error = vn_open_vnode(vp, fmode, cred, curthread, fp);
if (first_open) {
VI_LOCK(vp);
vp->v_iflag &= ~VI_FOPENING;
Index: sys/sys/namei.h
===================================================================
--- sys/sys/namei.h
+++ sys/sys/namei.h
@@ -49,7 +49,6 @@
*/
u_int64_t cn_origflags; /* flags to namei */
u_int64_t cn_flags; /* flags to namei */
- struct thread *cn_thread;/* thread requesting lookup */
struct ucred *cn_cred; /* credentials */
enum nameiop cn_nameiop; /* namei operation */
int cn_lkflags; /* Lock flags LK_EXCLUSIVE or LK_SHARED */
@@ -262,7 +261,6 @@
_ndp->ni_startdir = startdir; \
_ndp->ni_resflags = 0; \
filecaps_init(&_ndp->ni_filecaps); \
- _ndp->ni_cnd.cn_thread = td; \
_ndp->ni_rightsneeded = _rightsp; \
} while (0)
Index: sys/ufs/ffs/ffs_softdep.c
===================================================================
--- sys/ufs/ffs/ffs_softdep.c
+++ sys/ufs/ffs/ffs_softdep.c
@@ -2975,7 +2975,6 @@
bzero(&cnp, sizeof(cnp));
cnp.cn_nameiop = LOOKUP;
cnp.cn_flags = ISLASTCN;
- cnp.cn_thread = curthread;
cnp.cn_cred = curthread->td_ucred;
cnp.cn_pnbuf = SUJ_FILE;
cnp.cn_nameptr = SUJ_FILE;
Index: sys/ufs/ufs/ufs_extattr.c
===================================================================
--- sys/ufs/ufs/ufs_extattr.c
+++ sys/ufs/ufs/ufs_extattr.c
@@ -263,7 +263,6 @@
if (lockparent == UE_GETDIR_LOCKPARENT)
cnp.cn_flags |= LOCKPARENT;
cnp.cn_lkflags = LK_EXCLUSIVE;
- cnp.cn_thread = td;
cnp.cn_cred = td->td_ucred;
cnp.cn_pnbuf = uma_zalloc(namei_zone, M_WAITOK);
cnp.cn_nameptr = cnp.cn_pnbuf;
Index: sys/ufs/ufs/ufs_lookup.c
===================================================================
--- sys/ufs/ufs/ufs_lookup.c
+++ sys/ufs/ufs/ufs_lookup.c
@@ -230,7 +230,7 @@
* in VFS_VGET but we could end up creating objects
* that are never used.
*/
- vnode_create_vobject(vdp, DIP(dp, i_size), cnp->cn_thread);
+ vnode_create_vobject(vdp, DIP(dp, i_size), curthread);
bmask = VFSTOUFS(vdp->v_mount)->um_mountp->mnt_stat.f_iosize - 1;
@@ -486,9 +486,9 @@
* XXX: Fix the comment above.
*/
if (flags & WILLBEDIR)
- error = VOP_ACCESSX(vdp, VWRITE | VAPPEND, cred, cnp->cn_thread);
+ error = VOP_ACCESSX(vdp, VWRITE | VAPPEND, cred, curthread);
else
- error = VOP_ACCESS(vdp, VWRITE, cred, cnp->cn_thread);
+ error = VOP_ACCESS(vdp, VWRITE, cred, curthread);
if (error)
return (error);
/*
@@ -601,7 +601,7 @@
if ((error = VFS_VGET(vdp->v_mount, ino,
LK_EXCLUSIVE, &tdp)) != 0)
return (error);
- error = ufs_delete_denied(vdp, tdp, cred, cnp->cn_thread);
+ error = ufs_delete_denied(vdp, tdp, cred, curthread);
if (error) {
vput(tdp);
return (error);
@@ -625,9 +625,9 @@
*/
if (nameiop == RENAME && (flags & ISLASTCN)) {
if (flags & WILLBEDIR)
- error = VOP_ACCESSX(vdp, VWRITE | VAPPEND, cred, cnp->cn_thread);
+ error = VOP_ACCESSX(vdp, VWRITE | VAPPEND, cred, curthread);
else
- error = VOP_ACCESS(vdp, VWRITE, cred, cnp->cn_thread);
+ error = VOP_ACCESS(vdp, VWRITE, cred, curthread);
if (error)
return (error);
/*
@@ -643,7 +643,7 @@
LK_EXCLUSIVE, &tdp)) != 0)
return (error);
- error = ufs_delete_denied(vdp, tdp, cred, cnp->cn_thread);
+ error = ufs_delete_denied(vdp, tdp, cred, curthread);
if (error) {
vput(tdp);
return (error);
@@ -660,9 +660,9 @@
* of EACCESS.
*/
if (tdp->v_type == VDIR)
- error = VOP_ACCESSX(vdp, VWRITE | VAPPEND, cred, cnp->cn_thread);
+ error = VOP_ACCESSX(vdp, VWRITE | VAPPEND, cred, curthread);
else
- error = VOP_ACCESS(vdp, VWRITE, cred, cnp->cn_thread);
+ error = VOP_ACCESS(vdp, VWRITE, cred, curthread);
if (error) {
vput(tdp);
return (error);
Index: sys/ufs/ufs/ufs_vnops.c
===================================================================
--- sys/ufs/ufs/ufs_vnops.c
+++ sys/ufs/ufs/ufs_vnops.c
@@ -1239,7 +1239,7 @@
struct vnode *nvp;
struct componentname *tcnp = ap->a_tcnp;
struct componentname *fcnp = ap->a_fcnp;
- struct thread *td = fcnp->cn_thread;
+ struct thread *td = curthread;
struct inode *fip, *tip, *tdp, *fdp;
struct direct newdir;
off_t endoff;
@@ -1449,7 +1449,7 @@
* as to be able to change "..".
*/
if (doingdirectory && newparent) {
- error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, tcnp->cn_thread);
+ error = VOP_ACCESS(fvp, VWRITE, tcnp->cn_cred, curthread);
if (error)
goto unlockout;
@@ -2091,12 +2091,12 @@
#ifdef UFS_ACL
if (dvp->v_mount->mnt_flag & MNT_ACLS) {
error = ufs_do_posix1e_acl_inheritance_dir(dvp, tvp, dmode,
- cnp->cn_cred, cnp->cn_thread);
+ cnp->cn_cred, curthread);
if (error)
goto bad;
} else if (dvp->v_mount->mnt_flag & MNT_NFS4ACLS) {
error = ufs_do_nfs4_acl_inheritance(dvp, tvp, dmode,
- cnp->cn_cred, cnp->cn_thread);
+ cnp->cn_cred, curthread);
if (error)
goto bad;
}
@@ -2858,12 +2858,12 @@
#ifdef UFS_ACL
if (dvp->v_mount->mnt_flag & MNT_ACLS) {
error = ufs_do_posix1e_acl_inheritance_file(dvp, tvp, mode,
- cnp->cn_cred, cnp->cn_thread);
+ cnp->cn_cred, curthread);
if (error)
goto bad;
} else if (dvp->v_mount->mnt_flag & MNT_NFS4ACLS) {
error = ufs_do_nfs4_acl_inheritance(dvp, tvp, mode,
- cnp->cn_cred, cnp->cn_thread);
+ cnp->cn_cred, curthread);
if (error)
goto bad;
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Apr 26, 6:05 AM (3 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32143584
Default Alt Text
D32453.id96668.diff (32 KB)
Attached To
Mode
D32453: vfs: remove cn_thread
Attached
Detach File
Event Timeline
Log In to Comment