Page MenuHomeFreeBSD

D43257.diff
No OneTemporary

D43257.diff

diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -2962,7 +2962,7 @@
#ifdef CAPABILITIES
int
-fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, bool *fsearch)
+fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, bool *fsearch)
{
const struct filedescent *fde;
const struct fdescenttbl *fdt;
@@ -2972,9 +2972,11 @@
const cap_rights_t *haverights;
cap_rights_t rights;
seqc_t seq;
+ int fd;
VFS_SMR_ASSERT_ENTERED();
+ fd = ndp->ni_dirfd;
rights = *ndp->ni_rightsneeded;
cap_rights_set_one(&rights, CAP_LOOKUP);
@@ -3028,15 +3030,17 @@
}
#else
int
-fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, bool *fsearch)
+fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, bool *fsearch)
{
const struct fdescenttbl *fdt;
struct filedesc *fdp;
struct file *fp;
struct vnode *vp;
+ int fd;
VFS_SMR_ASSERT_ENTERED();
+ fd = ndp->ni_dirfd;
fdp = curproc->p_fd;
fdt = fdp->fd_files;
if (__predict_false((u_int)fd >= fdt->fdt_nfiles))
@@ -3064,7 +3068,7 @@
#endif
int
-fgetvp_lookup(int fd, struct nameidata *ndp, struct vnode **vpp)
+fgetvp_lookup(struct nameidata *ndp, struct vnode **vpp)
{
struct thread *td;
struct file *fp;
diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c
--- a/sys/kern/vfs_cache.c
+++ b/sys/kern/vfs_cache.c
@@ -4509,7 +4509,7 @@
ndp = fpl->ndp;
cnp = fpl->cnp;
- error = fgetvp_lookup_smr(ndp->ni_dirfd, ndp, vpp, &fsearch);
+ error = fgetvp_lookup_smr(ndp, vpp, &fsearch);
if (__predict_false(error != 0)) {
return (cache_fpl_aborted(fpl));
}
diff --git a/sys/kern/vfs_lookup.c b/sys/kern/vfs_lookup.c
--- a/sys/kern/vfs_lookup.c
+++ b/sys/kern/vfs_lookup.c
@@ -358,7 +358,7 @@
if (cnp->cn_flags & AUDITVNODE2)
AUDIT_ARG_ATFD2(ndp->ni_dirfd);
- error = fgetvp_lookup(ndp->ni_dirfd, ndp, dpp);
+ error = fgetvp_lookup(ndp, dpp);
}
if (error == 0 && (*dpp)->v_type != VDIR &&
(cnp->cn_pnbuf[0] != '\0' ||
diff --git a/sys/sys/file.h b/sys/sys/file.h
--- a/sys/sys/file.h
+++ b/sys/sys/file.h
@@ -289,8 +289,8 @@
struct vnode **vpp);
int fgetvp_write(struct thread *td, int fd, cap_rights_t *rightsp,
struct vnode **vpp);
-int fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, bool *fsearch);
-int fgetvp_lookup(int fd, struct nameidata *ndp, struct vnode **vpp);
+int fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, bool *fsearch);
+int fgetvp_lookup(struct nameidata *ndp, struct vnode **vpp);
static __inline __result_use_check bool
fhold(struct file *fp)

File Metadata

Mime Type
text/plain
Expires
Wed, Nov 20, 4:54 AM (21 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14730674
Default Alt Text
D43257.diff (2 KB)

Event Timeline