• Home
  • Raw
  • Download

Lines Matching refs:nsi

63 int nsinfo__init(struct nsinfo *nsi)  in nsinfo__init()  argument
78 if (asprintf(&newns, "/proc/%d/ns/mnt", nsi->pid) == -1) in nsinfo__init()
91 nsi->need_setns = true; in nsinfo__init()
92 nsi->mntns_path = newns; in nsinfo__init()
99 if (snprintf(spath, PATH_MAX, "/proc/%d/status", nsi->pid) >= PATH_MAX) in nsinfo__init()
109 nsi->tgid = (pid_t)strtol(strrchr(statln, '\t'), in nsinfo__init()
111 nsi->nstgid = nsi->tgid; in nsinfo__init()
115 nsi->nstgid = (pid_t)strtol(strrchr(statln, '\t'), in nsinfo__init()
132 struct nsinfo *nsi; in nsinfo__new() local
137 nsi = calloc(1, sizeof(*nsi)); in nsinfo__new()
138 if (nsi != NULL) { in nsinfo__new()
139 nsi->pid = pid; in nsinfo__new()
140 nsi->tgid = pid; in nsinfo__new()
141 nsi->nstgid = pid; in nsinfo__new()
142 nsi->need_setns = false; in nsinfo__new()
147 if (nsinfo__init(nsi) == -1) in nsinfo__new()
148 nsi->need_setns = false; in nsinfo__new()
150 refcount_set(&nsi->refcnt, 1); in nsinfo__new()
153 return nsi; in nsinfo__new()
156 struct nsinfo *nsinfo__copy(struct nsinfo *nsi) in nsinfo__copy() argument
160 if (nsi == NULL) in nsinfo__copy()
165 nnsi->pid = nsi->pid; in nsinfo__copy()
166 nnsi->tgid = nsi->tgid; in nsinfo__copy()
167 nnsi->nstgid = nsi->nstgid; in nsinfo__copy()
168 nnsi->need_setns = nsi->need_setns; in nsinfo__copy()
169 if (nsi->mntns_path) { in nsinfo__copy()
170 nnsi->mntns_path = strdup(nsi->mntns_path); in nsinfo__copy()
182 void nsinfo__delete(struct nsinfo *nsi) in nsinfo__delete() argument
184 zfree(&nsi->mntns_path); in nsinfo__delete()
185 free(nsi); in nsinfo__delete()
188 struct nsinfo *nsinfo__get(struct nsinfo *nsi) in nsinfo__get() argument
190 if (nsi) in nsinfo__get()
191 refcount_inc(&nsi->refcnt); in nsinfo__get()
192 return nsi; in nsinfo__get()
195 void nsinfo__put(struct nsinfo *nsi) in nsinfo__put() argument
197 if (nsi && refcount_dec_and_test(&nsi->refcnt)) in nsinfo__put()
198 nsinfo__delete(nsi); in nsinfo__put()
201 void nsinfo__mountns_enter(struct nsinfo *nsi, in nsinfo__mountns_enter() argument
215 if (!nsi || !nsi->need_setns) in nsinfo__mountns_enter()
229 newns = open(nsi->mntns_path, O_RDONLY); in nsinfo__mountns_enter()
272 char *nsinfo__realpath(const char *path, struct nsinfo *nsi) in nsinfo__realpath() argument
277 nsinfo__mountns_enter(nsi, &nsc); in nsinfo__realpath()