Page MenuHomeFreeBSD

D30140.id88715.diff
No OneTemporary

D30140.id88715.diff

diff --git a/sys/fs/fdescfs/fdesc_vnops.c b/sys/fs/fdescfs/fdesc_vnops.c
--- a/sys/fs/fdescfs/fdesc_vnops.c
+++ b/sys/fs/fdescfs/fdesc_vnops.c
@@ -264,10 +264,18 @@
struct vnode **rvp)
{
struct fdesc_get_ino_args *a;
+ struct vnode *vp;
int error;
a = arg;
- error = fdesc_allocvp(a->ftype, a->fd_fd, a->ix, mp, rvp);
+ if (a->fp->f_type == DTYPE_VNODE) {
+ vp = a->fp->f_vnode;
+ vget(vp, lkflags | LK_RETRY);
+ *rvp = vp;
+ error = 0;
+ } else {
+ error = fdesc_allocvp(a->ftype, a->fd_fd, a->ix, mp, rvp);
+ }
fdrop(a->fp, a->td);
return (error);
}

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 11, 10:32 PM (13 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31312109
Default Alt Text
D30140.id88715.diff (577 B)

Event Timeline