Lines Matching refs:wq

17 	struct autofs_wait_queue *wq, *nwq;
28 wq = sbi->queues;
30 while (wq) {
31 nwq = wq->next;
32 wq->status = -ENOENT; /* Magic is gone - report failure */
33 kfree(wq->name.name - wq->offset);
34 wq->name.name = NULL;
35 wake_up(&wq->queue);
36 if (!--wq->wait_ctr)
37 kfree(wq);
38 wq = nwq;
80 struct autofs_wait_queue *wq,
93 (unsigned long) wq->wait_queue_token,
94 wq->name.len, wq->name.name, type);
109 mp->wait_queue_token = wq->wait_queue_token;
110 mp->len = wq->name.len;
111 memcpy(mp->name, wq->name.name, wq->name.len);
112 mp->name[wq->name.len] = '\0';
122 ep->wait_queue_token = wq->wait_queue_token;
123 ep->len = wq->name.len;
124 memcpy(ep->name, wq->name.name, wq->name.len);
125 ep->name[wq->name.len] = '\0';
142 packet->wait_queue_token = wq->wait_queue_token;
143 packet->len = wq->name.len;
144 memcpy(packet->name, wq->name.name, wq->name.len);
145 packet->name[wq->name.len] = '\0';
146 packet->dev = wq->dev;
147 packet->ino = wq->ino;
148 packet->uid = from_kuid_munged(user_ns, wq->uid);
149 packet->gid = from_kgid_munged(user_ns, wq->gid);
150 packet->pid = wq->pid;
151 packet->tgid = wq->tgid;
170 autofs_wait_release(sbi, wq->wait_queue_token, ret);
182 struct autofs_wait_queue *wq;
184 for (wq = sbi->queues; wq; wq = wq->next) {
185 if (wq->name.hash == qstr->hash &&
186 wq->name.len == qstr->len &&
187 wq->name.name &&
188 !memcmp(wq->name.name, qstr->name, qstr->len))
191 return wq;
208 struct autofs_wait_queue *wq;
215 wq = autofs_find_wait(sbi, qstr);
216 if (wq) {
217 *wait = wq;
249 wq = autofs_find_wait(sbi, qstr);
250 if (wq) {
251 *wait = wq;
307 struct autofs_wait_queue *wq;
369 ret = validate_request(&wq, sbi, &qstr, path, notify);
377 if (!wq) {
379 wq = kmalloc(sizeof(struct autofs_wait_queue), GFP_KERNEL);
380 if (!wq) {
386 wq->wait_queue_token = autofs_next_wait_queue;
389 wq->next = sbi->queues;
390 sbi->queues = wq;
391 init_waitqueue_head(&wq->queue);
392 memcpy(&wq->name, &qstr, sizeof(struct qstr));
393 wq->offset = offset;
394 wq->dev = autofs_get_dev(sbi);
395 wq->ino = autofs_get_ino(sbi);
396 wq->uid = current_uid();
397 wq->gid = current_gid();
398 wq->pid = pid;
399 wq->tgid = tgid;
400 wq->status = -EINTR; /* Status return if interrupted */
401 wq->wait_ctr = 2;
420 (unsigned long) wq->wait_queue_token, wq->name.len,
421 wq->name.name, notify);
426 autofs_notify_daemon(sbi, wq, type);
428 wq->wait_ctr++;
430 (unsigned long) wq->wait_queue_token, wq->name.len,
431 wq->name.name, notify);
437 * wq->name.name is NULL iff the lock is already released
440 wait_event_killable(wq->queue, wq->name.name == NULL);
441 status = wq->status;
468 ino->uid = wq->uid;
469 ino->gid = wq->gid;
479 if (!--wq->wait_ctr)
480 kfree(wq);
490 struct autofs_wait_queue *wq, **wql;
493 for (wql = &sbi->queues; (wq = *wql) != NULL; wql = &wq->next) {
494 if (wq->wait_queue_token == wait_queue_token)
498 if (!wq) {
503 *wql = wq->next; /* Unlink from chain */
504 kfree(wq->name.name - wq->offset);
505 wq->name.name = NULL; /* Do not wait on this queue */
506 wq->status = status;
507 wake_up(&wq->queue);
508 if (!--wq->wait_ctr)
509 kfree(wq);