Print this page
OS-2910 sdev_node_t can end up associated with wrong sdev_plugin_t

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/dev/sdev_subr.c
          +++ new/usr/src/uts/common/fs/dev/sdev_subr.c
↓ open down ↓ 954 lines elided ↑ open up ↑
 955  955                  avl_destroy(&dv->sdev_entries);
 956  956          }
 957  957  
 958  958          mutex_destroy(&dv->sdev_lookup_lock);
 959  959          cv_destroy(&dv->sdev_lookup_cv);
 960  960  
 961  961          /* return node to initial state as per constructor */
 962  962          (void) memset((void *)&dv->sdev_instance_data, 0,
 963  963              sizeof (dv->sdev_instance_data));
 964  964          vn_invalid(SDEVTOV(dv));
      965 +        dv->sdev_private = NULL;
 965  966          kmem_cache_free(sdev_node_cache, dv);
 966  967  }
 967  968  
 968  969  /*
 969  970   * DIRECTORY CACHE lookup
 970  971   */
 971  972  struct sdev_node *
 972  973  sdev_findbyname(struct sdev_node *ddv, char *nm)
 973  974  {
 974  975          struct sdev_node *dv;
↓ open down ↓ 2170 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX