aboutsummaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_filedesc.c4
-rw-r--r--sys/kern/vfs_subr.c9
2 files changed, 13 insertions, 0 deletions
diff --git a/sys/kern/kern_filedesc.c b/sys/kern/kern_filedesc.c
index 74ab859..ec0aee7 100644
--- a/sys/kern/kern_filedesc.c
+++ b/sys/kern/kern_filedesc.c
@@ -211,6 +211,10 @@ fd_close_fdnum(struct proc *td, int fdno)
return;
}
+ if (fd->vnode != NULL) {
+ vfs_close(fd->vnode);
+ }
+
dynfree(fd);
td->fds[fdno] = NULL;
}
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index f760831..60afa31 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -247,3 +247,12 @@ int vfs_open(struct vnode *vp)
return vp->vops->open(vp);
}
+
+int
+vfs_close(struct vnode *vp)
+{
+ if (vp->vops->close == NULL)
+ return -EIO;
+
+ return vp->vops->close(vp);
+}