Improve default vnode operation handling for Coda:

- Don't specify vnode operations for mknod, lease, and advlock--let them
  fall through to vop_default.

- Implement vop_default with &default_vnodeops, rather than with VOP_PANIC,
  so that unimplemented vnode operations are handled in more sensible ways
  than panicking, such as EOPNOTSUPP on ACL queries generated by bsdtar,
  or mknod.

MFC after:	3 days
This commit is contained in:
rwatson 2008-01-19 17:12:44 +00:00
parent 5baa8fe000
commit a45d8c6482

View File

@ -106,10 +106,9 @@ static int coda_lockdebug = 0;
/* Definition of the vnode operation vector */
struct vop_vector coda_vnodeops = {
.vop_default = VOP_PANIC,
.vop_default = &default_vnodeops,
.vop_lookup = coda_lookup, /* lookup */
.vop_create = coda_create, /* create */
.vop_mknod = VOP_PANIC, /* mknod */
.vop_open = coda_open, /* open */
.vop_close = coda_close, /* close */
.vop_access = coda_access, /* access */
@ -135,8 +134,6 @@ struct vop_vector coda_vnodeops = {
.vop_print = VOP_NULL, /* print */
.vop_islocked = coda_islocked, /* islocked */
.vop_pathconf = coda_pathconf, /* pathconf */
.vop_advlock = VOP_NULL, /* advlock */
.vop_lease = VOP_NULL, /* lease */
.vop_poll = vop_stdpoll,
.vop_getpages = vop_stdgetpages, /* pager intf.*/
.vop_putpages = vop_stdputpages, /* pager intf.*/