X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=module%2Fzfs%2Ffm.c;fp=module%2Fzfs%2Ffm.c;h=4efcff4f464adf18714c2d0e0368f4319fee7154;hb=572e285762521df27fe5b026f409ba1a21abb7ac;hp=78943eda82957b0b7db7d303d926611fca1aaa3a;hpb=1980602bfae0605d3231e79627b3e25c07991b0e;p=zfs.git diff --git a/module/zfs/fm.c b/module/zfs/fm.c index 78943ed..4efcff4 100644 --- a/module/zfs/fm.c +++ b/module/zfs/fm.c @@ -384,6 +384,20 @@ fm_panic(const char *format, ...) } /* + * Simply tell the caller if fm_panicstr is set, ie. an fma event has + * caused the panic. If so, something other than the default panic + * diagnosis method will diagnose the cause of the panic. + */ +int +is_fm_panic() +{ + if (fm_panicstr) + return (1); + else + return (0); +} + +/* * Print any appropriate FMA banner message before the panic message. This * function is called by panicsys() and prints the message for fm_panic(). * We print the message here so that it comes after the system is quiesced. @@ -610,8 +624,8 @@ fm_nvlist_create(nv_alloc_t *nva) if (nvlist_xalloc(&nvl, NV_UNIQUE_NAME, nvhdl) != 0) { if (hdl_alloced) { - kmem_free(nvhdl, sizeof (nv_alloc_t)); nv_alloc_fini(nvhdl); + kmem_free(nvhdl, sizeof (nv_alloc_t)); } return (NULL); }