Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/checkpoint-restore/criu.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrill Gorcunov <gorcunov@gmail.com>2018-06-09 16:06:52 +0300
committerAndrei Vagin <avagin@virtuozzo.com>2018-06-19 22:51:01 +0300
commit6cb4d8991bb04da0a53b95003616906f41fbefa5 (patch)
tree9cfcc6709048ee24420dd252a9caf5f5c0db58de
parent487a96e8050215f00aa30d9f1eb1aef73a690a0f (diff)
unix: Rename unlink_stale to unlink_sk
We gonna use it to detele not only stale sockets but ghost sockets as well. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
-rw-r--r--criu/sk-unix.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/criu/sk-unix.c b/criu/sk-unix.c
index c0d2289d8..4f5e00de0 100644
--- a/criu/sk-unix.c
+++ b/criu/sk-unix.c
@@ -1758,11 +1758,11 @@ static struct file_desc_ops unix_desc_ops = {
* Make FS clean from sockets we're about to
* restore. See for how we bind them for details
*/
-static void unlink_stale(struct unix_sk_info *ui)
+static void unlink_sk(struct unix_sk_info *ui)
{
int ret, cwd_fd = -1, root_fd = -1, ns_fd = -1;
- if (ui->name[0] == '\0' || (ui->ue->uflags & USK_EXTERN))
+ if (!ui->name || ui->name[0] == '\0' || (ui->ue->uflags & USK_EXTERN))
return;
if (prep_unix_sk_cwd(ui, &cwd_fd, &root_fd, NULL))
@@ -1770,10 +1770,15 @@ static void unlink_stale(struct unix_sk_info *ui)
ret = unlinkat(AT_FDCWD, ui->name, 0) ? -1 : 0;
if (ret < 0 && errno != ENOENT) {
- pr_warn("Can't unlink stale socket %#x peer %#x (name %s dir %s)\n",
+ pr_warn("Can't unlink socket %#x peer %#x (name %s dir %s)\n",
ui->ue->ino, ui->ue->peer,
ui->name ? (ui->name[0] ? ui->name : &ui->name[1]) : "-",
ui->name_dir ? ui->name_dir : "-");
+ } else if (ret == 0) {
+ pr_debug("Unlinked socket %#x peer %#x (name %s dir %s)\n",
+ ui->ue->ino, ui->ue->peer,
+ ui->name ? (ui->name[0] ? ui->name : &ui->name[1]) : "-",
+ ui->name_dir ? ui->name_dir : "-");
}
revert_unix_sk_cwd(ui, &cwd_fd, &root_fd, &ns_fd);
}
@@ -1788,8 +1793,7 @@ static int post_prepare_unix_sk(struct pprep_head *ph)
ui = container_of(ph, struct unix_sk_info, peer_resolve);
if (ui->ue->peer && fixup_unix_peer(ui))
return -1;
- if (ui->name)
- unlink_stale(ui);
+ unlink_sk(ui);
return 0;
}