Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3:Rings:1-MinimalX
kdump
kdump-fix-save_dump-to-NFS.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kdump-fix-save_dump-to-NFS.patch of Package kdump
From: Petr Tesarik <ptesarik@suse.com> Date: Thu Jun 22 14:23:02 2017 +0200 Subject: Fix save_dump to NFS targets References: bsc#1045541 Upstream: v0.8.17 Git-commit: 11d36a645ab99c9805f9fa3ca9eabce3aa2a9418 For NFS, the parent directory of the target must be mounted, because the target directory itself does not exist yet. For this to work, split the target path to directory (i.e. parent directory) and basename. Then construct a unique mount point from the host name and the parent directory, and finally append the base name again to form a subdirectory in the target (to be created by the file transfer method). Signed-off-by: Petr Tesarik <ptesarik@suse.com> --- kdumptool/transfer.cc | 24 +++++++++++------------- kdumptool/transfer.h | 4 +--- 2 files changed, 12 insertions(+), 16 deletions(-) --- a/kdumptool/transfer.cc +++ b/kdumptool/transfer.cc @@ -462,22 +462,20 @@ RootDirURL NFSTransfer::translate(const if (!rt.check(config->KDUMP_NET_TIMEOUT.value())) cerr << "WARNING: Dump target not reachable" << endl; - string mountedDir = parser.getPath(); - FileUtil::nfsmount(parser.getHostname(), mountedDir, - DEFAULT_MOUNTPOINT, options); - + FilePath path = parser.getPath(); + string mountedDir = path.dirName(); + string rest = path.baseName(); m_mountpoint = DEFAULT_MOUNTPOINT; - m_rest = parser.getPath(); - m_rest.replace(m_rest.begin(), m_rest.begin() + mountedDir.size(), ""); - m_rest.ltrim("/"); + m_mountpoint.appendPath(parser.getHostname()).appendPath(mountedDir); + m_mountpoint.mkdir(true); + Debug::debug()->dbg("Path: %s, Mountpoint: %s, Rest: %s", + path.c_str(), m_mountpoint.c_str(), rest.c_str()); - (m_prefix = m_mountpoint).appendPath(m_rest); - - Debug::debug()->dbg("Mountpoint: %s, Rest: %s, Prefix: $s", - m_mountpoint.c_str(), m_rest.c_str(), m_prefix.c_str()); + FileUtil::nfsmount(parser.getHostname(), mountedDir, + m_mountpoint, options); - return RootDirURL("file://" + m_prefix, ""); + return RootDirURL("file://" + m_mountpoint + PATH_SEPARATOR + rest, ""); } // ----------------------------------------------------------------------------- @@ -507,7 +505,7 @@ void NFSTransfer::close() throw (KError) { Debug::debug()->trace("NFSTransfer::close()"); - if (m_mountpoint.size() > 0) { + if (!m_mountpoint.empty()) { FileUtil::umount(m_mountpoint); m_mountpoint.clear(); } --- a/kdumptool/transfer.h +++ b/kdumptool/transfer.h @@ -271,9 +271,7 @@ class NFSTransfer : public URLTransfer { private: - std::string m_mountpoint; - KString m_rest; - FilePath m_prefix; + FilePath m_mountpoint; FileTransfer *m_fileTransfer; };
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor