diff options
Diffstat (limited to 'fs/9p/mux.c')
-rw-r--r-- | fs/9p/mux.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/fs/9p/mux.c b/fs/9p/mux.c index 8ebc1af2c245..0854bef58c16 100644 --- a/fs/9p/mux.c +++ b/fs/9p/mux.c | |||
@@ -324,6 +324,26 @@ v9fs_mux_rpc(struct v9fs_session_info *v9ses, struct v9fs_fcall *tcall, | |||
324 | } | 324 | } |
325 | 325 | ||
326 | /** | 326 | /** |
327 | * v9fs_mux_cancel_requests - cancels all pending requests | ||
328 | * | ||
329 | * @v9ses: session info structure | ||
330 | * @err: error code to return to the requests | ||
331 | */ | ||
332 | void v9fs_mux_cancel_requests(struct v9fs_session_info *v9ses, int err) | ||
333 | { | ||
334 | struct v9fs_rpcreq *rptr; | ||
335 | struct v9fs_rpcreq *rreq; | ||
336 | |||
337 | dprintk(DEBUG_MUX, " %d\n", err); | ||
338 | spin_lock(&v9ses->muxlock); | ||
339 | list_for_each_entry_safe(rreq, rptr, &v9ses->mux_fcalls, next) { | ||
340 | rreq->err = err; | ||
341 | } | ||
342 | spin_unlock(&v9ses->muxlock); | ||
343 | wake_up_all(&v9ses->read_wait); | ||
344 | } | ||
345 | |||
346 | /** | ||
327 | * v9fs_recvproc - kproc to handle demultiplexing responses | 347 | * v9fs_recvproc - kproc to handle demultiplexing responses |
328 | * @data: session info structure | 348 | * @data: session info structure |
329 | * | 349 | * |