handle PUFFS_VN_INACTIVE

This commit is contained in:
pooka 2006-10-25 18:15:50 +00:00
parent 14d708398a
commit bda8cd7266
2 changed files with 21 additions and 16 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: puffs.c,v 1.2 2006/10/23 00:22:24 christos Exp $ */
/* $NetBSD: puffs.c,v 1.3 2006/10/25 18:15:50 pooka Exp $ */
/*
* Copyright (c) 2005, 2006 Antti Kantee. All Rights Reserved.
@ -34,7 +34,7 @@
#include <sys/cdefs.h>
#if !defined(lint)
__RCSID("$NetBSD: puffs.c,v 1.2 2006/10/23 00:22:24 christos Exp $");
__RCSID("$NetBSD: puffs.c,v 1.3 2006/10/25 18:15:50 pooka Exp $");
#endif /* !lint */
#include <sys/param.h>
@ -538,6 +538,20 @@ puffcall(struct puffs_usermount *pu, struct puffs_req *preq)
break;
}
case PUFFS_VN_INACTIVE:
{
struct puffs_vnreq_inactive *auxt = preq->preq_aux;
if (pu->pu_pvn.puffs_inactive == NULL) {
error = EOPNOTSUPP;
break;
}
error = pu->pu_pvn.puffs_inactive(pu,
preq->preq_cookie, auxt->pvnr_pid,
&auxt->pvnr_backendrefs);
break;
}
case PUFFS_VN_PATHCONF:
{
struct puffs_vnreq_pathconf *auxt = preq->preq_aux;
@ -712,19 +726,6 @@ puffcall(struct puffs_usermount *pu, struct puffs_req *preq)
break;
}
case PUFFS_VN_INACTIVE:
{
struct puffs_vnreq_inactive *auxt = preq->preq_aux;
if (pu->pu_pvn.puffs_inactive == NULL) {
error = 0;
break;
}
error = pu->pu_pvn.puffs_inactive(pu,
preq->preq_cookie, );
break;
}
case PUFFS_VN_LOCK:
{
struct puffs_vnreq_lock *auxt = preq->preq_aux;

View File

@ -1,4 +1,4 @@
/* $NetBSD: puffs.h,v 1.1 2006/10/22 22:52:21 pooka Exp $ */
/* $NetBSD: puffs.h,v 1.2 2006/10/25 18:15:50 pooka Exp $ */
/*
* Copyright (c) 2005, 2006 Antti Kantee. All Rights Reserved.
@ -129,6 +129,8 @@ struct puffs_vnops {
void *, const struct puffs_cred *, char *, size_t *);
int (*puffs_reclaim)(struct puffs_usermount *,
void *, pid_t);
int (*puffs_inactive)(struct puffs_usermount *,
void *, pid_t, int *);
int (*puffs_print)(struct puffs_usermount *,
void *);
int (*puffs_pathconf)(struct puffs_usermount *,
@ -282,6 +284,8 @@ int puffs_cred_isjuggernaut(const struct puffs_cred *pcr);
void *, const struct puffs_cred *, char *, size_t *); \
int fsname##_reclaim(struct puffs_usermount *, \
void *, pid_t); \
int fsname##_inactive(struct puffs_usermount *, \
void *, pid_t, int *); \
int fsname##_print(struct puffs_usermount *, \
void *); \
int fsname##_pathconf(struct puffs_usermount *, \