tag | line | file | source code |
upd | 154 | net/unix/sock.c | void unix_lock(struct unix_proto_data *upd) |
upd | 156 | net/unix/sock.c | while (upd->lock_flag) |
upd | 157 | net/unix/sock.c | sleep_on(&upd->wait); |
upd | 158 | net/unix/sock.c | upd->lock_flag = 1; |
upd | 162 | net/unix/sock.c | void unix_unlock(struct unix_proto_data *upd) |
upd | 164 | net/unix/sock.c | upd->lock_flag = 0; |
upd | 165 | net/unix/sock.c | wake_up(&upd->wait); |
upd | 237 | net/unix/sock.c | struct unix_proto_data *upd; |
upd | 239 | net/unix/sock.c | for(upd = unix_datas; upd <= last_unix_data; ++upd) { |
upd | 240 | net/unix/sock.c | if (upd->refcnt && upd->socket && |
upd | 241 | net/unix/sock.c | upd->socket->state == SS_UNCONNECTED && |
upd | 242 | net/unix/sock.c | upd->sockaddr_un.sun_family == sockun->sun_family && |
upd | 243 | net/unix/sock.c | upd->inode == inode) return(upd); |
upd | 252 | net/unix/sock.c | struct unix_proto_data *upd; |
upd | 255 | net/unix/sock.c | for(upd = unix_datas; upd <= last_unix_data; ++upd) { |
upd | 256 | net/unix/sock.c | if (!upd->refcnt) { |
upd | 257 | net/unix/sock.c | upd->refcnt = 1; |
upd | 259 | net/unix/sock.c | upd->socket = NULL; |
upd | 260 | net/unix/sock.c | upd->sockaddr_len = 0; |
upd | 261 | net/unix/sock.c | upd->sockaddr_un.sun_family = 0; |
upd | 262 | net/unix/sock.c | upd->buf = NULL; |
upd | 263 | net/unix/sock.c | upd->bp_head = upd->bp_tail = 0; |
upd | 264 | net/unix/sock.c | upd->inode = NULL; |
upd | 265 | net/unix/sock.c | upd->peerupd = NULL; |
upd | 266 | net/unix/sock.c | return(upd); |
upd | 275 | net/unix/sock.c | unix_data_ref(struct unix_proto_data *upd) |
upd | 277 | net/unix/sock.c | if (!upd) { |
upd | 281 | net/unix/sock.c | ++upd->refcnt; |
upd | 282 | net/unix/sock.c | dprintf(1, "UNIX: data_ref: refing data 0x%x(%d)\n", upd, upd->refcnt); |
upd | 287 | net/unix/sock.c | unix_data_deref(struct unix_proto_data *upd) |
upd | 289 | net/unix/sock.c | if (!upd) { |
upd | 293 | net/unix/sock.c | if (upd->refcnt == 1) { |
upd | 294 | net/unix/sock.c | dprintf(1, "UNIX: data_deref: releasing data 0x%x\n", upd); |
upd | 295 | net/unix/sock.c | if (upd->buf) { |
upd | 296 | net/unix/sock.c | free_page((unsigned long)upd->buf); |
upd | 297 | net/unix/sock.c | upd->buf = NULL; |
upd | 298 | net/unix/sock.c | upd->bp_head = upd->bp_tail = 0; |
upd | 301 | net/unix/sock.c | --upd->refcnt; |
upd | 312 | net/unix/sock.c | struct unix_proto_data *upd; |
upd | 319 | net/unix/sock.c | if (!(upd = unix_data_alloc())) { |
upd | 323 | net/unix/sock.c | if (!(upd->buf = (char*) get_free_page(GFP_USER))) { |
upd | 325 | net/unix/sock.c | unix_data_deref(upd); |
upd | 328 | net/unix/sock.c | upd->protocol = protocol; |
upd | 329 | net/unix/sock.c | upd->socket = sock; |
upd | 330 | net/unix/sock.c | UN_DATA(sock) = upd; |
upd | 331 | net/unix/sock.c | dprintf(1, "UNIX: create: allocated data 0x%x\n", upd); |
upd | 339 | net/unix/sock.c | struct unix_proto_data *upd = UN_DATA(oldsock); |
upd | 341 | net/unix/sock.c | return(unix_proto_create(newsock, upd->protocol)); |
upd | 348 | net/unix/sock.c | struct unix_proto_data *upd = UN_DATA(sock); |
upd | 350 | net/unix/sock.c | dprintf(1, "UNIX: release: socket 0x%x, unix_data 0x%x\n", sock, upd); |
upd | 351 | net/unix/sock.c | if (!upd) return(0); |
upd | 352 | net/unix/sock.c | if (upd->socket != sock) { |
upd | 356 | net/unix/sock.c | if (upd->inode) { |
upd | 357 | net/unix/sock.c | dprintf(1, "UNIX: release: releasing inode 0x%x\n", upd->inode); |
upd | 358 | net/unix/sock.c | iput(upd->inode); |
upd | 359 | net/unix/sock.c | upd->inode = NULL; |
upd | 362 | net/unix/sock.c | upd->socket = NULL; |
upd | 363 | net/unix/sock.c | if (upd->peerupd) unix_data_deref(upd->peerupd); |
upd | 364 | net/unix/sock.c | unix_data_deref(upd); |
upd | 383 | net/unix/sock.c | struct unix_proto_data *upd = UN_DATA(sock); |
upd | 394 | net/unix/sock.c | if (upd->sockaddr_len || upd->inode) { |
upd | 401 | net/unix/sock.c | memcpy_fromfs(&upd->sockaddr_un, umyaddr, sockaddr_len); |
upd | 402 | net/unix/sock.c | upd->sockaddr_un.sun_path[sockaddr_len-UN_PATH_OFFSET] = '\0'; |
upd | 403 | net/unix/sock.c | if (upd->sockaddr_un.sun_family != AF_UNIX) { |
upd | 405 | net/unix/sock.c | upd->sockaddr_un.sun_family, AF_UNIX); |
upd | 409 | net/unix/sock.c | memcpy(fname, upd->sockaddr_un.sun_path, sockaddr_len-UN_PATH_OFFSET); |
upd | 414 | net/unix/sock.c | if (i == 0) i = open_namei(fname, 0, S_IFSOCK, &upd->inode, NULL); |
upd | 420 | net/unix/sock.c | upd->sockaddr_len = sockaddr_len; /* now its legal */ |
upd | 423 | net/unix/sock.c | sockaddr_un_printk(&upd->sockaddr_un, upd->sockaddr_len); |
upd | 424 | net/unix/sock.c | dprintf(1, "to inode 0x%x\n", upd->inode); |
upd | 567 | net/unix/sock.c | struct unix_proto_data *upd; |
upd | 577 | net/unix/sock.c | upd = UN_DATA(sock->conn); |
upd | 579 | net/unix/sock.c | upd = UN_DATA(sock); |
upd | 585 | net/unix/sock.c | if (len > upd->sockaddr_len) len = upd->sockaddr_len; |
upd | 590 | net/unix/sock.c | memcpy_tofs(usockaddr, &upd->sockaddr_un, len); |
upd | 601 | net/unix/sock.c | struct unix_proto_data *upd; |
upd | 606 | net/unix/sock.c | upd = UN_DATA(sock); |
upd | 607 | net/unix/sock.c | while(!(avail = UN_BUF_AVAIL(upd))) { |
upd | 626 | net/unix/sock.c | unix_lock(upd); |
upd | 637 | net/unix/sock.c | if (cando >(part = BUF_SIZE - upd->bp_tail)) cando = part; |
upd | 642 | net/unix/sock.c | unix_unlock(upd); |
upd | 645 | net/unix/sock.c | memcpy_tofs(ubuf, upd->buf + upd->bp_tail, cando); |
upd | 646 | net/unix/sock.c | upd->bp_tail =(upd->bp_tail + cando) &(BUF_SIZE-1); |
upd | 651 | net/unix/sock.c | avail = UN_BUF_AVAIL(upd); |
upd | 653 | net/unix/sock.c | unix_unlock(upd); |
upd | 747 | net/unix/sock.c | struct unix_proto_data *upd, *peerupd; |
upd | 764 | net/unix/sock.c | upd = UN_DATA(sock); |
upd | 766 | net/unix/sock.c | UN_BUF_AVAIL(upd) ? "" : " no"); |
upd | 767 | net/unix/sock.c | if (UN_BUF_AVAIL(upd)) /* even if disconnected */ |
upd | 798 | net/unix/sock.c | struct unix_proto_data *upd, *peerupd; |
upd | 801 | net/unix/sock.c | upd = UN_DATA(sock); |
upd | 810 | net/unix/sock.c | if (UN_BUF_AVAIL(upd) || peerupd) |
upd | 811 | net/unix/sock.c | put_fs_long(UN_BUF_AVAIL(upd),(unsigned long *)arg); |
upd | 929 | net/unix/sock.c | struct unix_proto_data *upd; |
upd | 941 | net/unix/sock.c | for(upd = unix_datas; upd <= last_unix_data; ++upd) { |
upd | 942 | net/unix/sock.c | upd->refcnt = 0; |