Guest

Untitled

By: a guest on Jan 28th, 2012  |  syntax: Diff  |  size: 1.91 KB  |  hits: 60  |  expires: in 4 days
download  |  raw  |  embed  |  report abuse
Copied
  1. diff --git a/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c b/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c
  2. index 1feabe7..861bf3e 100644
  3. --- a/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c
  4. +++ b/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c
  5. @@ -93,7 +93,7 @@ zfs_kmem_alloc(size_t size, int kmflags)
  6.  }
  7.  
  8.  void
  9. -zfs_kmem_free(void *buf, size_t size __unused)
  10. +zfs_kmem_free_flags(void *buf, size_t size __unused, int flags)
  11.  {
  12.  #ifdef KMEM_DEBUG
  13.         if (buf == NULL) {
  14. @@ -112,7 +112,10 @@ zfs_kmem_free(void *buf, size_t size __unused)
  15.         LIST_REMOVE(i, next);
  16.         mtx_unlock(&kmem_items_mtx);
  17.  #endif
  18. -       free(buf, M_SOLARIS);
  19. +       if (flags & KM_NODUMP)
  20. +               free (buf, M_EXCLUDE);
  21. +       else
  22. +               free(buf, M_SOLARIS);
  23.  }
  24.  
  25.  static uint64_t kmem_size_val;
  26. diff --git a/sys/cddl/compat/opensolaris/sys/kmem.h b/sys/cddl/compat/opensolaris/sys/kmem.h
  27. index 428badf..08c79e6 100644
  28. --- a/sys/cddl/compat/opensolaris/sys/kmem.h
  29. +++ b/sys/cddl/compat/opensolaris/sys/kmem.h
  30. @@ -66,6 +66,7 @@ typedef struct kmem_cache {
  31.  
  32.  void *zfs_kmem_alloc(size_t size, int kmflags);
  33.  void zfs_kmem_free(void *buf, size_t size);
  34. +void zfs_kmem_free_flags(void *buf, size_t size, int kmflags);
  35.  uint64_t kmem_size(void);
  36.  uint64_t kmem_used(void);
  37.  kmem_cache_t *kmem_cache_create(char *name, size_t bufsize, size_t align,
  38. @@ -81,7 +82,8 @@ void *calloc(size_t n, size_t s);
  39.  
  40.  #define        kmem_alloc(size, kmflags)       zfs_kmem_alloc((size), (kmflags))
  41.  #define        kmem_zalloc(size, kmflags)      zfs_kmem_alloc((size), (kmflags) | M_ZERO)
  42. -#define        kmem_free(buf, size)            zfs_kmem_free((buf), (size))
  43. +#define        kmem_free(buf, size)            zfs_kmem_free_flags((buf), (size), 0)
  44. +#define        kmem_free_flags(buf, size, flags)               zfs_kmem_free_flags((buf), (size), (flags))
  45.  
  46.  #define        kmem_cache_set_move(cac