Lines Matching refs:new
146 struct afs_permits *permits, *xpermits, *replacement, *zap, *new = NULL; in afs_cache_permit() local
222 new = kzalloc(sizeof(struct afs_permits) + in afs_cache_permit()
224 if (!new) in afs_cache_permit()
227 refcount_set(&new->usage, 1); in afs_cache_permit()
228 new->nr_permits = size; in afs_cache_permit()
233 new->permits[j].key = key; in afs_cache_permit()
234 new->permits[j].access = caller_access; in afs_cache_permit()
237 new->permits[j].key = permits->permits[i].key; in afs_cache_permit()
238 new->permits[j].access = permits->permits[i].access; in afs_cache_permit()
244 new->permits[j].key = key; in afs_cache_permit()
245 new->permits[j].access = caller_access; in afs_cache_permit()
248 afs_hash_permits(new); in afs_cache_permit()
253 hash_for_each_possible(afs_permits_cache, xpermits, hash_node, new->h) { in afs_cache_permit()
254 if (xpermits->h != new->h || in afs_cache_permit()
256 xpermits->nr_permits != new->nr_permits || in afs_cache_permit()
257 memcmp(xpermits->permits, new->permits, in afs_cache_permit()
258 new->nr_permits * sizeof(struct afs_permit)) != 0) in afs_cache_permit()
269 for (i = 0; i < new->nr_permits; i++) in afs_cache_permit()
270 key_get(new->permits[i].key); in afs_cache_permit()
271 hash_add_rcu(afs_permits_cache, &new->hash_node, new->h); in afs_cache_permit()
272 replacement = new; in afs_cache_permit()
273 new = NULL; in afs_cache_permit()
278 kfree(new); in afs_cache_permit()