Lines Matching refs:wq
29 struct autofs_wait_queue *wq, *nwq; in autofs4_catatonic_mode() local
40 wq = sbi->queues; in autofs4_catatonic_mode()
42 while (wq) { in autofs4_catatonic_mode()
43 nwq = wq->next; in autofs4_catatonic_mode()
44 wq->status = -ENOENT; /* Magic is gone - report failure */ in autofs4_catatonic_mode()
45 kfree(wq->name.name); in autofs4_catatonic_mode()
46 wq->name.name = NULL; in autofs4_catatonic_mode()
47 wq->wait_ctr--; in autofs4_catatonic_mode()
48 wake_up_interruptible(&wq->queue); in autofs4_catatonic_mode()
49 wq = nwq; in autofs4_catatonic_mode()
94 struct autofs_wait_queue *wq, in autofs4_notify_daemon() argument
106 (unsigned long) wq->wait_queue_token, wq->name.len, wq->name.name, type); in autofs4_notify_daemon()
121 mp->wait_queue_token = wq->wait_queue_token; in autofs4_notify_daemon()
122 mp->len = wq->name.len; in autofs4_notify_daemon()
123 memcpy(mp->name, wq->name.name, wq->name.len); in autofs4_notify_daemon()
124 mp->name[wq->name.len] = '\0'; in autofs4_notify_daemon()
133 ep->wait_queue_token = wq->wait_queue_token; in autofs4_notify_daemon()
134 ep->len = wq->name.len; in autofs4_notify_daemon()
135 memcpy(ep->name, wq->name.name, wq->name.len); in autofs4_notify_daemon()
136 ep->name[wq->name.len] = '\0'; in autofs4_notify_daemon()
153 packet->wait_queue_token = wq->wait_queue_token; in autofs4_notify_daemon()
154 packet->len = wq->name.len; in autofs4_notify_daemon()
155 memcpy(packet->name, wq->name.name, wq->name.len); in autofs4_notify_daemon()
156 packet->name[wq->name.len] = '\0'; in autofs4_notify_daemon()
157 packet->dev = wq->dev; in autofs4_notify_daemon()
158 packet->ino = wq->ino; in autofs4_notify_daemon()
159 packet->uid = from_kuid_munged(user_ns, wq->uid); in autofs4_notify_daemon()
160 packet->gid = from_kgid_munged(user_ns, wq->gid); in autofs4_notify_daemon()
161 packet->pid = wq->pid; in autofs4_notify_daemon()
162 packet->tgid = wq->tgid; in autofs4_notify_daemon()
228 struct autofs_wait_queue *wq; in autofs4_find_wait() local
230 for (wq = sbi->queues; wq; wq = wq->next) { in autofs4_find_wait()
231 if (wq->name.hash == qstr->hash && in autofs4_find_wait()
232 wq->name.len == qstr->len && in autofs4_find_wait()
233 wq->name.name && in autofs4_find_wait()
234 !memcmp(wq->name.name, qstr->name, qstr->len)) in autofs4_find_wait()
237 return wq; in autofs4_find_wait()
253 struct autofs_wait_queue *wq; in validate_request() local
260 wq = autofs4_find_wait(sbi, qstr); in validate_request()
261 if (wq) { in validate_request()
262 *wait = wq; in validate_request()
294 wq = autofs4_find_wait(sbi, qstr); in validate_request()
295 if (wq) { in validate_request()
296 *wait = wq; in validate_request()
346 struct autofs_wait_queue *wq; in autofs4_wait() local
404 ret = validate_request(&wq, sbi, &qstr, dentry, notify); in autofs4_wait()
412 if (!wq) { in autofs4_wait()
414 wq = kmalloc(sizeof(struct autofs_wait_queue),GFP_KERNEL); in autofs4_wait()
415 if (!wq) { in autofs4_wait()
421 wq->wait_queue_token = autofs4_next_wait_queue; in autofs4_wait()
424 wq->next = sbi->queues; in autofs4_wait()
425 sbi->queues = wq; in autofs4_wait()
426 init_waitqueue_head(&wq->queue); in autofs4_wait()
427 memcpy(&wq->name, &qstr, sizeof(struct qstr)); in autofs4_wait()
428 wq->dev = autofs4_get_dev(sbi); in autofs4_wait()
429 wq->ino = autofs4_get_ino(sbi); in autofs4_wait()
430 wq->uid = current_uid(); in autofs4_wait()
431 wq->gid = current_gid(); in autofs4_wait()
432 wq->pid = pid; in autofs4_wait()
433 wq->tgid = tgid; in autofs4_wait()
434 wq->status = -EINTR; /* Status return if interrupted */ in autofs4_wait()
435 wq->wait_ctr = 2; in autofs4_wait()
454 (unsigned long) wq->wait_queue_token, wq->name.len, in autofs4_wait()
455 wq->name.name, notify); in autofs4_wait()
458 autofs4_notify_daemon(sbi, wq, type); in autofs4_wait()
460 wq->wait_ctr++; in autofs4_wait()
462 (unsigned long) wq->wait_queue_token, wq->name.len, in autofs4_wait()
463 wq->name.name, notify); in autofs4_wait()
472 if (wq->name.name) { in autofs4_wait()
483 wait_event_interruptible(wq->queue, wq->name.name == NULL); in autofs4_wait()
493 status = wq->status; in autofs4_wait()
520 ino->uid = wq->uid; in autofs4_wait()
521 ino->gid = wq->gid; in autofs4_wait()
531 if (!--wq->wait_ctr) in autofs4_wait()
532 kfree(wq); in autofs4_wait()
541 struct autofs_wait_queue *wq, **wql; in autofs4_wait_release() local
544 for (wql = &sbi->queues; (wq = *wql) != NULL; wql = &wq->next) { in autofs4_wait_release()
545 if (wq->wait_queue_token == wait_queue_token) in autofs4_wait_release()
549 if (!wq) { in autofs4_wait_release()
554 *wql = wq->next; /* Unlink from chain */ in autofs4_wait_release()
555 kfree(wq->name.name); in autofs4_wait_release()
556 wq->name.name = NULL; /* Do not wait on this queue */ in autofs4_wait_release()
557 wq->status = status; in autofs4_wait_release()
558 wake_up_interruptible(&wq->queue); in autofs4_wait_release()
559 if (!--wq->wait_ctr) in autofs4_wait_release()
560 kfree(wq); in autofs4_wait_release()