Lines Matching defs:pl

1524 pcachelink_locked_rele(pcachelink_t *pl)
1526 ASSERT(MUTEX_HELD(&pl->pcl_lock));
1527 VERIFY(pl->pcl_refcnt >= 1);
1529 pl->pcl_refcnt--;
1530 if (pl->pcl_refcnt == 0) {
1531 VERIFY(pl->pcl_state == PCL_INVALID);
1532 ASSERT(pl->pcl_parent_pc == NULL);
1533 ASSERT(pl->pcl_child_pc == NULL);
1534 ASSERT(pl->pcl_parent_next == NULL);
1535 ASSERT(pl->pcl_child_next == NULL);
1537 pl->pcl_state = PCL_FREE;
1538 mutex_destroy(&pl->pcl_lock);
1539 kmem_free(pl, sizeof (pcachelink_t));
1541 mutex_exit(&pl->pcl_lock);
1553 pcachelink_t *pl, **plpn;
1560 for (pl = child->pc_parents; pl != NULL; pl = *plpn) {
1561 mutex_enter(&pl->pcl_lock);
1562 if (pl->pcl_state == PCL_INVALID) {
1564 *plpn = pl->pcl_parent_next;
1565 pl->pcl_child_pc = NULL;
1566 pl->pcl_parent_next = NULL;
1567 pcachelink_locked_rele(pl);
1568 } else if (pl->pcl_parent_pc == parent) {
1570 ASSERT(pl->pcl_state == PCL_VALID ||
1571 pl->pcl_state == PCL_STALE);
1572 pl->pcl_state = PCL_VALID;
1573 mutex_exit(&pl->pcl_lock);
1576 plpn = &pl->pcl_parent_next;
1577 mutex_exit(&pl->pcl_lock);
1582 pl = kmem_zalloc(sizeof (pcachelink_t), KM_SLEEP);
1583 mutex_init(&pl->pcl_lock, NULL, MUTEX_DEFAULT, NULL);
1585 pl->pcl_parent_pc = parent;
1586 pl->pcl_child_next = parent->pc_children;
1587 parent->pc_children = pl;
1588 pl->pcl_refcnt++;
1590 pl->pcl_child_pc = child;
1591 pl->pcl_parent_next = child->pc_parents;
1592 child->pc_parents = pl;
1593 pl->pcl_refcnt++;
1595 pl->pcl_state = PCL_VALID;
1605 pcachelink_t *pl, **plpn;
1610 for (pl = pcp->pc_children; pl != NULL; pl = *plpn) {
1611 mutex_enter(&pl->pcl_lock);
1612 if (pl->pcl_state == PCL_INVALID) {
1617 *plpn = pl->pcl_child_next;
1618 pl->pcl_parent_pc = NULL;
1619 pl->pcl_child_next = NULL;
1620 pcachelink_locked_rele(pl);
1622 pl->pcl_state = PCL_STALE;
1623 plpn = &pl->pcl_child_next;
1624 mutex_exit(&pl->pcl_lock);
1635 pcachelink_t *pl, **plpn;
1640 for (pl = pcp->pc_children; pl != NULL; pl = *plpn) {
1641 mutex_enter(&pl->pcl_lock);
1642 switch (pl->pcl_state) {
1644 pl->pcl_state = PCL_INVALID;
1647 *plpn = pl->pcl_child_next;
1648 pl->pcl_parent_pc = NULL;
1649 pl->pcl_child_next = NULL;
1650 pcachelink_locked_rele(pl);
1653 plpn = &pl->pcl_child_next;
1654 mutex_exit(&pl->pcl_lock);
1665 pcachelink_t *pl, **plpn;
1670 for (pl = pcp->pc_parents; pl != NULL; pl = *plpn) {
1671 mutex_enter(&pl->pcl_lock);
1672 pl->pcl_state = PCL_INVALID;
1673 *plpn = pl->pcl_parent_next;
1674 pl->pcl_child_pc = NULL;
1675 pl->pcl_parent_next = NULL;
1676 pcachelink_locked_rele(pl);
1680 for (pl = pcp->pc_children; pl != NULL; pl = *plpn) {
1681 mutex_enter(&pl->pcl_lock);
1682 pl->pcl_state = PCL_INVALID;
1683 *plpn = pl->pcl_child_next;
1684 pl->pcl_parent_pc = NULL;
1685 pl->pcl_child_next = NULL;
1686 pcachelink_locked_rele(pl);