tag | line | file | source code |
upd | 191 | net/unix.c | struct unix_proto_data *upd; |
upd | 193 | net/unix.c | for (upd = unix_datas; upd <= last_unix_data; ++upd) { |
upd | 194 | net/unix.c | if (upd->refcnt && upd->socket && |
upd | 195 | net/unix.c | upd->sockaddr_len == sockaddr_len && |
upd | 196 | net/unix.c | memcmp(&upd->sockaddr_un, sockun, sockaddr_len) == 0) |
upd | 197 | net/unix.c | return upd; |
upd | 205 | net/unix.c | struct unix_proto_data *upd; |
upd | 208 | net/unix.c | for (upd = unix_datas; upd <= last_unix_data; ++upd) { |
upd | 209 | net/unix.c | if (!upd->refcnt) { |
upd | 210 | net/unix.c | upd->refcnt = 1; |
upd | 212 | net/unix.c | upd->socket = NULL; |
upd | 213 | net/unix.c | upd->sockaddr_len = 0; |
upd | 214 | net/unix.c | upd->buf = NULL; |
upd | 215 | net/unix.c | upd->bp_head = upd->bp_tail = 0; |
upd | 216 | net/unix.c | upd->inode = NULL; |
upd | 217 | net/unix.c | upd->peerupd = NULL; |
upd | 218 | net/unix.c | return upd; |
upd | 226 | net/unix.c | unix_data_ref(struct unix_proto_data *upd) |
upd | 228 | net/unix.c | ++upd->refcnt; |
upd | 229 | net/unix.c | PRINTK("unix_data_ref: refing data 0x%x (%d)\n", upd, upd->refcnt); |
upd | 233 | net/unix.c | unix_data_deref(struct unix_proto_data *upd) |
upd | 235 | net/unix.c | if (upd->refcnt == 1) { |
upd | 236 | net/unix.c | PRINTK("unix_data_deref: releasing data 0x%x\n", upd); |
upd | 237 | net/unix.c | if (upd->buf) { |
upd | 238 | net/unix.c | free_page((unsigned long)upd->buf); |
upd | 239 | net/unix.c | upd->buf = NULL; |
upd | 240 | net/unix.c | upd->bp_head = upd->bp_tail = 0; |
upd | 243 | net/unix.c | --upd->refcnt; |
upd | 253 | net/unix.c | struct unix_proto_data *upd; |
upd | 260 | net/unix.c | if (!(upd = unix_data_alloc())) { |
upd | 264 | net/unix.c | if (!(upd->buf = (char *)get_free_page(GFP_USER))) { |
upd | 266 | net/unix.c | unix_data_deref(upd); |
upd | 269 | net/unix.c | upd->protocol = protocol; |
upd | 270 | net/unix.c | upd->socket = sock; |
upd | 271 | net/unix.c | UN_DATA(sock) = upd; |
upd | 272 | net/unix.c | PRINTK("unix_proto_create: allocated data 0x%x\n", upd); |
upd | 279 | net/unix.c | struct unix_proto_data *upd = UN_DATA(oldsock); |
upd | 281 | net/unix.c | return unix_proto_create(newsock, upd->protocol); |
upd | 287 | net/unix.c | struct unix_proto_data *upd = UN_DATA(sock); |
upd | 290 | net/unix.c | sock, upd); |
upd | 291 | net/unix.c | if (!upd) |
upd | 293 | net/unix.c | if (upd->socket != sock) { |
upd | 297 | net/unix.c | if (upd->inode) { |
upd | 299 | net/unix.c | upd->inode); |
upd | 300 | net/unix.c | iput(upd->inode); |
upd | 301 | net/unix.c | upd->inode = NULL; |
upd | 304 | net/unix.c | upd->socket = NULL; |
upd | 305 | net/unix.c | if (upd->peerupd) |
upd | 306 | net/unix.c | unix_data_deref(upd->peerupd); |
upd | 307 | net/unix.c | unix_data_deref(upd); |
upd | 324 | net/unix.c | struct unix_proto_data *upd = UN_DATA(sock); |
upd | 336 | net/unix.c | if (upd->sockaddr_len || upd->inode) { |
upd | 341 | net/unix.c | memcpy_fromfs(&upd->sockaddr_un, umyaddr, sockaddr_len); |
upd | 342 | net/unix.c | if (upd->sockaddr_un.sun_family != AF_UNIX) { |
upd | 344 | net/unix.c | upd->sockaddr_un.sun_family, AF_UNIX); |
upd | 348 | net/unix.c | memcpy(fname, upd->sockaddr_un.sun_path, sockaddr_len-UN_PATH_OFFSET); |
upd | 354 | net/unix.c | i = open_namei(fname, 0, S_IFSOCK, &upd->inode, NULL); |
upd | 361 | net/unix.c | upd->sockaddr_len = sockaddr_len; /* now its legal */ |
upd | 364 | net/unix.c | sockaddr_un_printk(&upd->sockaddr_un, upd->sockaddr_len); |
upd | 474 | net/unix.c | struct unix_proto_data *upd; |
upd | 484 | net/unix.c | upd = UN_DATA(sock->conn); |
upd | 487 | net/unix.c | upd = UN_DATA(sock); |
upd | 491 | net/unix.c | if (len > upd->sockaddr_len) |
upd | 492 | net/unix.c | len = upd->sockaddr_len; |
upd | 495 | net/unix.c | memcpy_tofs(usockaddr, &upd->sockaddr_un, len); |
upd | 507 | net/unix.c | struct unix_proto_data *upd; |
upd | 512 | net/unix.c | upd = UN_DATA(sock); |
upd | 513 | net/unix.c | while (!(avail = UN_BUF_AVAIL(upd))) { |
upd | 547 | net/unix.c | if (cando > (part = BUF_SIZE - upd->bp_tail)) |
upd | 552 | net/unix.c | memcpy_tofs(ubuf, upd->buf + upd->bp_tail, cando); |
upd | 553 | net/unix.c | upd->bp_tail = (upd->bp_tail + cando) & (BUF_SIZE-1); |
upd | 558 | net/unix.c | avail = UN_BUF_AVAIL(upd); |
upd | 644 | net/unix.c | struct unix_proto_data *upd, *peerupd; |
upd | 664 | net/unix.c | upd = UN_DATA(sock); |
upd | 666 | net/unix.c | UN_BUF_AVAIL(upd) ? "" : " no"); |
upd | 667 | net/unix.c | if (UN_BUF_AVAIL(upd)) /* even if disconnected */ |
upd | 697 | net/unix.c | struct unix_proto_data *upd, *peerupd; |
upd | 699 | net/unix.c | upd = UN_DATA(sock); |
upd | 708 | net/unix.c | if (UN_BUF_AVAIL(upd) || peerupd) |
upd | 709 | net/unix.c | put_fs_long(UN_BUF_AVAIL(upd), (unsigned long *)arg); |
upd | 734 | net/unix.c | struct unix_proto_data *upd; |
upd | 737 | net/unix.c | for (upd = unix_datas; upd <= last_unix_data; ++upd) |
upd | 738 | net/unix.c | upd->refcnt = 0; |