Lines Matching refs:addr
252 struct unix_address *addr;
254 addr = kmalloc(sizeof(*addr) + addr_len, GFP_KERNEL);
255 if (!addr)
258 refcount_set(&addr->refcnt, 1);
259 addr->len = addr_len;
260 memcpy(addr->name, sunaddr, addr_len);
262 return addr;
265 static inline void unix_release_addr(struct unix_address *addr)
267 if (refcount_dec_and_test(&addr->refcnt))
268 kfree(addr);
292 struct sockaddr_storage *addr = (struct sockaddr_storage *)sunaddr;
306 addr->__data[addr_len - offset] = 0;
312 return strlen(addr->__data) + offset + 1;
327 struct unix_address *addr, unsigned int hash)
330 smp_store_release(&unix_sk(sk)->addr, addr);
377 if (u->addr->len == len &&
378 !memcmp(u->addr->name, sunname, len))
591 if (u->addr)
592 unix_release_addr(u->addr);
735 if (!u->addr)
1151 struct unix_address *addr;
1159 if (u->addr)
1163 addr = kzalloc(sizeof(*addr) +
1165 if (!addr)
1168 addr->len = offsetof(struct sockaddr_un, sun_path) + 6;
1169 addr->name->sun_family = AF_UNIX;
1170 refcount_set(&addr->refcnt, 1);
1176 sprintf(addr->name->sun_path + 1, "%05x", ordernum);
1178 new_hash = unix_abstract_hash(addr->name, addr->len, sk->sk_type);
1181 if (__unix_find_socket_byname(net, addr->name, addr->len, new_hash)) {
1192 unix_release_addr(addr);
1199 __unix_set_addr_hash(net, sk, addr, new_hash);
1216 struct unix_address *addr;
1222 addr = unix_create_addr(sunaddr, addr_len);
1223 if (!addr)
1230 dentry = kern_path_create(AT_FDCWD, addr->name->sun_path, &parent, 0);
1248 if (u->addr)
1255 __unix_set_addr_hash(net, sk, addr, new_hash);
1271 unix_release_addr(addr);
1281 struct unix_address *addr;
1284 addr = unix_create_addr(sunaddr, addr_len);
1285 if (!addr)
1292 if (u->addr) {
1297 new_hash = unix_abstract_hash(addr->name, addr->len, sk->sk_type);
1300 if (__unix_find_socket_byname(net, addr->name, addr->len, new_hash))
1303 __unix_set_addr_hash(net, sk, addr, new_hash);
1314 unix_release_addr(addr);
1363 static int unix_dgram_connect(struct socket *sock, struct sockaddr *addr,
1366 struct sockaddr_un *sunaddr = (struct sockaddr_un *)addr;
1375 if (addr->sa_family != AF_UNSPEC) {
1382 !unix_sk(sk)->addr) {
1490 test_bit(SOCK_PASSPIDFD, &sock->flags)) && !u->addr) {
1611 * The contents of *(otheru->addr) and otheru->path
1616 * the same one where we'd set *(otheru->addr) contents,
1617 * as well as otheru->path and otheru->addr itself.
1619 * Using smp_store_release() here to set newu->addr
1621 * to newu->path visible to anyone who gets newu->addr
1630 refcount_inc(&otheru->addr->refcnt);
1631 smp_store_release(&newu->addr, otheru->addr);
1746 struct unix_address *addr;
1761 addr = smp_load_acquire(&unix_sk(sk)->addr);
1762 if (!addr) {
1767 err = addr->len;
1768 memcpy(sunaddr, addr->name, addr->len);
1930 test_bit(SOCK_PASSPIDFD, &sock->flags)) && !u->addr) {
2329 struct unix_address *addr = smp_load_acquire(&unix_sk(sk)->addr);
2331 if (addr) {
2332 msg->msg_namelen = addr->len;
2333 memcpy(msg->msg_name, addr->name, addr->len);
2989 if (!smp_load_acquire(&unix_sk(sk)->addr))
3280 if (u->addr) { // under a hash table lock here
3285 len = u->addr->len -
3287 if (u->addr->name->sun_path[0]) {
3294 seq_putc(seq, u->addr->name->sun_path[i] ?: