mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-08 04:18:07 +02:00
platform: preserve errno when creating netns fails
(cherry picked from commit 7a98ee78be)
This commit is contained in:
parent
9464fa0963
commit
f4cd75d422
1 changed files with 5 additions and 0 deletions
|
|
@ -290,6 +290,7 @@ _netns_new (GError **error)
|
||||||
g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN,
|
g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN,
|
||||||
"Failed opening netns: %s",
|
"Failed opening netns: %s",
|
||||||
g_strerror (errsv));
|
g_strerror (errsv));
|
||||||
|
errno = errsv;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -300,6 +301,7 @@ _netns_new (GError **error)
|
||||||
"Failed opening mntns: %s",
|
"Failed opening mntns: %s",
|
||||||
g_strerror (errsv));
|
g_strerror (errsv));
|
||||||
nm_close (fd_net);
|
nm_close (fd_net);
|
||||||
|
errno = errsv;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -479,6 +481,7 @@ nmp_netns_new (void)
|
||||||
if (!_stack_peek ()) {
|
if (!_stack_peek ()) {
|
||||||
/* there are no netns instances. We cannot create a new one
|
/* there are no netns instances. We cannot create a new one
|
||||||
* (because after unshare we couldn't return to the original one). */
|
* (because after unshare we couldn't return to the original one). */
|
||||||
|
errno = ENOTSUP;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -508,6 +511,7 @@ nmp_netns_new (void)
|
||||||
|
|
||||||
self = _netns_new (&error);
|
self = _netns_new (&error);
|
||||||
if (!self) {
|
if (!self) {
|
||||||
|
errsv = errno;
|
||||||
_LOGE (NULL, "failed to create netns after unshare: %s", error->message);
|
_LOGE (NULL, "failed to create netns after unshare: %s", error->message);
|
||||||
g_clear_error (&error);
|
g_clear_error (&error);
|
||||||
goto err_out;
|
goto err_out;
|
||||||
|
|
@ -518,6 +522,7 @@ nmp_netns_new (void)
|
||||||
return self;
|
return self;
|
||||||
err_out:
|
err_out:
|
||||||
_netns_switch_pop (NULL, _CLONE_NS_ALL);
|
_netns_switch_pop (NULL, _CLONE_NS_ALL);
|
||||||
|
errno = errsv;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue