trans_xen.c (c002c27874faaa170b535d03d7efee89ecdd9be4) | trans_xen.c (9523feac272ccad2ad8186ba4fcc89103754de52) |
---|---|
1/* 2 * linux/fs/9p/trans_xen 3 * 4 * Xen transport layer. 5 * 6 * Copyright (C) 2017 by Stefano Stabellini <stefano@aporeto.com> 7 * 8 * This program is free software; you can redistribute it and/or --- 142 unchanged lines hidden (view full) --- 151 read_unlock(&xen_9pfs_lock); 152 if (!priv || priv->client != client) 153 return -EINVAL; 154 155 num = p9_req->tc->tag % priv->num_rings; 156 ring = &priv->rings[num]; 157 158again: | 1/* 2 * linux/fs/9p/trans_xen 3 * 4 * Xen transport layer. 5 * 6 * Copyright (C) 2017 by Stefano Stabellini <stefano@aporeto.com> 7 * 8 * This program is free software; you can redistribute it and/or --- 142 unchanged lines hidden (view full) --- 151 read_unlock(&xen_9pfs_lock); 152 if (!priv || priv->client != client) 153 return -EINVAL; 154 155 num = p9_req->tc->tag % priv->num_rings; 156 ring = &priv->rings[num]; 157 158again: |
159 while (wait_event_interruptible(ring->wq, 160 p9_xen_write_todo(ring, size)) != 0) | 159 while (wait_event_killable(ring->wq, 160 p9_xen_write_todo(ring, size)) != 0) |
161 ; 162 163 spin_lock_irqsave(&ring->lock, flags); 164 cons = ring->intf->out_cons; 165 prod = ring->intf->out_prod; 166 virt_mb(); 167 168 if (XEN_9PFS_RING_SIZE - xen_9pfs_queued(prod, cons, --- 377 unchanged lines hidden --- | 161 ; 162 163 spin_lock_irqsave(&ring->lock, flags); 164 cons = ring->intf->out_cons; 165 prod = ring->intf->out_prod; 166 virt_mb(); 167 168 if (XEN_9PFS_RING_SIZE - xen_9pfs_queued(prod, cons, --- 377 unchanged lines hidden --- |