1520
1521 return (error);
1522 }
1523
1524 static int
1525 sdev_pathconf(vnode_t *vp, int cmd, ulong_t *valp, cred_t *cr,
1526 caller_context_t *ct)
1527 {
1528 switch (cmd) {
1529 case _PC_ACL_ENABLED:
1530 *valp = SDEV_ACL_FLAVOR(vp);
1531 return (0);
1532 }
1533
1534 return (fs_pathconf(vp, cmd, valp, cr, ct));
1535 }
1536
1537 vnodeops_t *sdev_vnodeops;
1538
1539 const fs_operation_def_t sdev_vnodeops_tbl[] = {
1540 VOPNAME_OPEN, { .vop_open = sdev_open },
1541 VOPNAME_CLOSE, { .vop_close = sdev_close },
1542 VOPNAME_READ, { .vop_read = sdev_read },
1543 VOPNAME_WRITE, { .vop_write = sdev_write },
1544 VOPNAME_IOCTL, { .vop_ioctl = sdev_ioctl },
1545 VOPNAME_GETATTR, { .vop_getattr = sdev_getattr },
1546 VOPNAME_SETATTR, { .vop_setattr = sdev_setattr },
1547 VOPNAME_ACCESS, { .vop_access = sdev_access },
1548 VOPNAME_LOOKUP, { .vop_lookup = sdev_lookup },
1549 VOPNAME_CREATE, { .vop_create = sdev_create },
1550 VOPNAME_RENAME, { .vop_rename = sdev_rename },
1551 VOPNAME_REMOVE, { .vop_remove = sdev_remove },
1552 VOPNAME_MKDIR, { .vop_mkdir = sdev_mkdir },
1553 VOPNAME_RMDIR, { .vop_rmdir = sdev_rmdir },
1554 VOPNAME_READDIR, { .vop_readdir = sdev_readdir },
1555 VOPNAME_SYMLINK, { .vop_symlink = sdev_symlink },
1556 VOPNAME_READLINK, { .vop_readlink = sdev_readlink },
1557 VOPNAME_INACTIVE, { .vop_inactive = sdev_inactive },
1558 VOPNAME_FID, { .vop_fid = sdev_fid },
1559 VOPNAME_RWLOCK, { .vop_rwlock = sdev_rwlock },
1560 VOPNAME_RWUNLOCK, { .vop_rwunlock = sdev_rwunlock },
1561 VOPNAME_SEEK, { .vop_seek = sdev_seek },
1562 VOPNAME_FRLOCK, { .vop_frlock = sdev_frlock },
1563 VOPNAME_PATHCONF, { .vop_pathconf = sdev_pathconf },
1564 VOPNAME_SETSECATTR, { .vop_setsecattr = sdev_setsecattr },
1565 VOPNAME_GETSECATTR, { .vop_getsecattr = sdev_getsecattr },
1566 NULL, NULL
1567 };
1568
1569 int sdev_vnodeops_tbl_size = sizeof (sdev_vnodeops_tbl);
|
1520
1521 return (error);
1522 }
1523
1524 static int
1525 sdev_pathconf(vnode_t *vp, int cmd, ulong_t *valp, cred_t *cr,
1526 caller_context_t *ct)
1527 {
1528 switch (cmd) {
1529 case _PC_ACL_ENABLED:
1530 *valp = SDEV_ACL_FLAVOR(vp);
1531 return (0);
1532 }
1533
1534 return (fs_pathconf(vp, cmd, valp, cr, ct));
1535 }
1536
1537 vnodeops_t *sdev_vnodeops;
1538
1539 const fs_operation_def_t sdev_vnodeops_tbl[] = {
1540 { VOPNAME_OPEN, { .vop_open = sdev_open } },
1541 { VOPNAME_CLOSE, { .vop_close = sdev_close } },
1542 { VOPNAME_READ, { .vop_read = sdev_read } },
1543 { VOPNAME_WRITE, { .vop_write = sdev_write } },
1544 { VOPNAME_IOCTL, { .vop_ioctl = sdev_ioctl } },
1545 { VOPNAME_GETATTR, { .vop_getattr = sdev_getattr } },
1546 { VOPNAME_SETATTR, { .vop_setattr = sdev_setattr } },
1547 { VOPNAME_ACCESS, { .vop_access = sdev_access } },
1548 { VOPNAME_LOOKUP, { .vop_lookup = sdev_lookup } },
1549 { VOPNAME_CREATE, { .vop_create = sdev_create } },
1550 { VOPNAME_RENAME, { .vop_rename = sdev_rename } },
1551 { VOPNAME_REMOVE, { .vop_remove = sdev_remove } },
1552 { VOPNAME_MKDIR, { .vop_mkdir = sdev_mkdir } },
1553 { VOPNAME_RMDIR, { .vop_rmdir = sdev_rmdir } },
1554 { VOPNAME_READDIR, { .vop_readdir = sdev_readdir } },
1555 { VOPNAME_SYMLINK, { .vop_symlink = sdev_symlink } },
1556 { VOPNAME_READLINK, { .vop_readlink = sdev_readlink } },
1557 { VOPNAME_INACTIVE, { .vop_inactive = sdev_inactive } },
1558 { VOPNAME_FID, { .vop_fid = sdev_fid } },
1559 { VOPNAME_RWLOCK, { .vop_rwlock = sdev_rwlock } },
1560 { VOPNAME_RWUNLOCK, { .vop_rwunlock = sdev_rwunlock } },
1561 { VOPNAME_SEEK, { .vop_seek = sdev_seek } },
1562 { VOPNAME_FRLOCK, { .vop_frlock = sdev_frlock } },
1563 { VOPNAME_PATHCONF, { .vop_pathconf = sdev_pathconf } },
1564 { VOPNAME_SETSECATTR, { .vop_setsecattr = sdev_setsecattr } },
1565 { VOPNAME_GETSECATTR, { .vop_getsecattr = sdev_getsecattr } },
1566 { NULL, { NULL } }
1567 };
1568
1569 int sdev_vnodeops_tbl_size = sizeof (sdev_vnodeops_tbl);
|