Commit 7d7373a4 authored by Stanislav Kinsburskiy's avatar Stanislav Kinsburskiy Committed by Pavel Emelyanov

cr-restore: new list of ns shared objects introduced

Autofs restore needs to create some shared data structures to be able to pass
data to actual autofs master.
But on mount restore stage shared data is not configured yet.
This list of objects and their actors is processed after all mounts and shared
data are restored to let autofs to create the objects.
Signed-off-by: 's avatarStanislav Kinsburskiy <skinsbursky@virtuozzo.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 84a89b46
......@@ -180,6 +180,39 @@ static struct collect_image_info *cinfos[] = {
&file_locks_cinfo,
};
struct post_prepare_cb {
struct list_head list;
int (*actor)(void *data);
void *data;
};
struct list_head post_prepare_cbs = LIST_HEAD_INIT(post_prepare_cbs);
int add_post_prepare_cb(int (*actor)(void *data), void *data)
{
struct post_prepare_cb *cb;
cb = xmalloc(sizeof(*cb));
if (!cb)
return -1;
cb->actor = actor;
cb->data = data;
list_add(&cb->list, &post_prepare_cbs);
return 0;
}
static int run_post_prepare(void)
{
struct post_prepare_cb *o;
list_for_each_entry(o, &post_prepare_cbs, list) {
if (o->actor(o->data))
return -1;
}
return 0;
}
static int root_prepare_shared(void)
{
int ret = 0, i;
......@@ -249,6 +282,10 @@ static int root_prepare_shared(void)
if (ret)
goto err;
ret = run_post_prepare();
if (ret)
goto err;
show_saved_shmems();
show_saved_files();
err:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment