Lines Matching refs:new
201 static inline int ipc_idr_alloc(struct ipc_ids *ids, struct kern_ipc_perm *new) in ipc_idr_alloc() argument
244 new->seq = ids->seq; in ipc_idr_alloc()
249 idr_replace(&ids->ipcs_idr, new, idx); in ipc_idr_alloc()
252 new->seq = ipcid_to_seqx(next_id); in ipc_idr_alloc()
253 idx = idr_alloc(&ids->ipcs_idr, new, ipcid_to_idx(next_id), 0, GFP_NOWAIT); in ipc_idr_alloc()
256 new->id = (new->seq << ipcmni_seq_shift()) + idx; in ipc_idr_alloc()
276 int ipc_addid(struct ipc_ids *ids, struct kern_ipc_perm *new, int limit) in ipc_addid() argument
283 refcount_set(&new->refcount, 1); in ipc_addid()
295 spin_lock_init(&new->lock); in ipc_addid()
297 spin_lock(&new->lock); in ipc_addid()
300 new->cuid = new->uid = euid; in ipc_addid()
301 new->gid = new->cgid = egid; in ipc_addid()
303 new->deleted = false; in ipc_addid()
305 idx = ipc_idr_alloc(ids, new); in ipc_addid()
308 if (idx >= 0 && new->key != IPC_PRIVATE) { in ipc_addid()
309 err = rhashtable_insert_fast(&ids->key_ht, &new->khtnode, ipc_kht_params); in ipc_addid()
316 new->deleted = true; in ipc_addid()
317 spin_unlock(&new->lock); in ipc_addid()