Lines Matching defs:pl

1561 pcachelink_locked_rele(pcachelink_t *pl)
1563 ASSERT(MUTEX_HELD(&pl->pcl_lock));
1564 VERIFY(pl->pcl_refcnt >= 1);
1566 pl->pcl_refcnt--;
1567 if (pl->pcl_refcnt == 0) {
1568 VERIFY(pl->pcl_state == PCL_INVALID);
1569 ASSERT(pl->pcl_parent_pc == NULL);
1570 ASSERT(pl->pcl_child_pc == NULL);
1571 ASSERT(pl->pcl_parent_next == NULL);
1572 ASSERT(pl->pcl_child_next == NULL);
1574 pl->pcl_state = PCL_FREE;
1575 mutex_destroy(&pl->pcl_lock);
1576 kmem_free(pl, sizeof (pcachelink_t));
1578 mutex_exit(&pl->pcl_lock);
1590 pcachelink_t *pl, **plpn;
1597 for (pl = child->pc_parents; pl != NULL; pl = *plpn) {
1598 mutex_enter(&pl->pcl_lock);
1599 if (pl->pcl_state == PCL_INVALID) {
1601 *plpn = pl->pcl_parent_next;
1602 pl->pcl_child_pc = NULL;
1603 pl->pcl_parent_next = NULL;
1604 pcachelink_locked_rele(pl);
1605 } else if (pl->pcl_parent_pc == parent) {
1607 ASSERT(pl->pcl_state == PCL_VALID ||
1608 pl->pcl_state == PCL_STALE);
1609 pl->pcl_state = PCL_VALID;
1610 mutex_exit(&pl->pcl_lock);
1613 plpn = &pl->pcl_parent_next;
1614 mutex_exit(&pl->pcl_lock);
1619 pl = kmem_zalloc(sizeof (pcachelink_t), KM_SLEEP);
1620 mutex_init(&pl->pcl_lock, NULL, MUTEX_DEFAULT, NULL);
1622 pl->pcl_parent_pc = parent;
1623 pl->pcl_child_next = parent->pc_children;
1624 parent->pc_children = pl;
1625 pl->pcl_refcnt++;
1627 pl->pcl_child_pc = child;
1628 pl->pcl_parent_next = child->pc_parents;
1629 child->pc_parents = pl;
1630 pl->pcl_refcnt++;
1632 pl->pcl_state = PCL_VALID;
1642 pcachelink_t *pl, **plpn;
1647 for (pl = pcp->pc_children; pl != NULL; pl = *plpn) {
1648 mutex_enter(&pl->pcl_lock);
1649 if (pl->pcl_state == PCL_INVALID) {
1654 *plpn = pl->pcl_child_next;
1655 pl->pcl_parent_pc = NULL;
1656 pl->pcl_child_next = NULL;
1657 pcachelink_locked_rele(pl);
1659 pl->pcl_state = PCL_STALE;
1660 plpn = &pl->pcl_child_next;
1661 mutex_exit(&pl->pcl_lock);
1672 pcachelink_t *pl, **plpn;
1677 for (pl = pcp->pc_children; pl != NULL; pl = *plpn) {
1678 mutex_enter(&pl->pcl_lock);
1679 switch (pl->pcl_state) {
1681 pl->pcl_state = PCL_INVALID;
1684 *plpn = pl->pcl_child_next;
1685 pl->pcl_parent_pc = NULL;
1686 pl->pcl_child_next = NULL;
1687 pcachelink_locked_rele(pl);
1690 plpn = &pl->pcl_child_next;
1691 mutex_exit(&pl->pcl_lock);
1702 pcachelink_t *pl, **plpn;
1707 for (pl = pcp->pc_parents; pl != NULL; pl = *plpn) {
1708 mutex_enter(&pl->pcl_lock);
1709 pl->pcl_state = PCL_INVALID;
1710 *plpn = pl->pcl_parent_next;
1711 pl->pcl_child_pc = NULL;
1712 pl->pcl_parent_next = NULL;
1713 pcachelink_locked_rele(pl);
1717 for (pl = pcp->pc_children; pl != NULL; pl = *plpn) {
1718 mutex_enter(&pl->pcl_lock);
1719 pl->pcl_state = PCL_INVALID;
1720 *plpn = pl->pcl_child_next;
1721 pl->pcl_parent_pc = NULL;
1722 pl->pcl_child_next = NULL;
1723 pcachelink_locked_rele(pl);