diff --git a/sys/vfs/dirfs/dirfs_subr.c b/sys/vfs/dirfs/dirfs_subr.c --- a/sys/vfs/dirfs/dirfs_subr.c +++ b/sys/vfs/dirfs/dirfs_subr.c @@ -194,6 +194,7 @@ dnp->dn_fd = openat(pathnp->dn_fd, tmp, openflags, vap->va_mode); if (dnp->dn_fd == -1) { + dirfs_node_free(dmp, dnp); dirfs_dropfd(dmp, pathnp, pathfree); return errno; }