File kdump-add-none-format of Package kdump

From: Jeff Mahoney <jeffm@suse.com>
Subject: kdump: Add 'none' format

 Now that we have the ability to dump the dmesg log after a crash, it's
 useful for users who don't have any use for a crash dump other than
 to generate the dmesg log to avoid saving the dump at all. This avoids
 both using the disk space required for a lot as well as the time
 involved in waiting for the dump to complete only to later have to
 remove it manually.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
 kdumptool/savedump.cc |   17 ++++++++++-------
 sysconfig.kdump       |    5 +++--
 2 files changed, 13 insertions(+), 9 deletions(-)

--- a/kdumptool/savedump.cc
+++ b/kdumptool/savedump.cc
@@ -277,12 +277,13 @@ void SaveDump::saveDump()
 
     bool useElf = strcasestr(dumpformat.c_str(), "elf") != NULL;
     bool useCompressed = strcasestr(dumpformat.c_str(), "compressed") != NULL;
+    bool noDump = strcasestr(dumpformat.c_str(), "none") != NULL;
 
     if (useElf && dumplevel == 0) {
         // use file source?
         provider = new FileDataProvider(m_dump.c_str());
         m_useMakedumpfile = false;
-    } else {
+    } else if (!noDump) {
         // use makedumpfile
         stringstream cmdline;
         cmdline << "makedumpfile ";
@@ -316,12 +317,14 @@ void SaveDump::saveDump()
             cout << "Saving dump using makedumpfile" << endl;
             terminal.printLine();
         }
-        TerminalProgress progress("Saving dump");
-        if (config->getVerbose() & Configuration::VERB_PROGRESS)
-            provider->setProgress(&progress);
-        else
-            cout << "Saving dump ..." << endl;
-        m_transfer->perform(provider, "vmcore", &m_usedDirectSave);
+        if (provider) {
+            TerminalProgress progress("Saving dump");
+            if (config->getVerbose() & Configuration::VERB_PROGRESS)
+                provider->setProgress(&progress);
+            else
+                cout << "Saving dump ..." << endl;
+                m_transfer->perform(provider, "vmcore", &m_usedDirectSave);
+        }
         m_transfer->perform(logProvider, "dmesg.txt", NULL);
         if (m_useMakedumpfile)
             terminal.printLine();
--- a/sysconfig.kdump
+++ b/sysconfig.kdump
@@ -154,11 +154,12 @@ KDUMP_VERBOSE=3
 #
 KDUMP_DUMPLEVEL=0
 
-## Type:        list(,compressed,ELF)
+## Type:        list(,compressed,ELF,none)
 ## Default:     "compressed"
 ## ServiceRestart:	kdump
 #
-# This variable specifies the dump format.
+# This variable specifies the dump format. Using the 'none' option will
+# skip capturing the dump entirely and only save the log messages.
 #
 # See also: kdump(5).
 KDUMP_DUMPFORMAT="compressed"
openSUSE Build Service is sponsored by