mirror of https://github.com/torvalds/linux.git
When v9fs_mux_rpc sends a 9P message, it may be put in the queue of unsent request. If the user process receives a signal, v9fs_mux_rpc sets the request error to ERREQFLUSH and assigns NULL to request's send message. If the message was still in the unsent queue, v9fs_write_work would produce an oops while processing it. The patch makes sure that requests that are being flushed are moved to the pending requests queue safely. If a request is being flushed, don't remove it from the list of pending requests even if it receives a reply before the flush is acknoledged. The request will be removed during from the Rflush handler (v9fs_mux_flush_cb). Signed-off-by: Latchesar Ionkov <lucho@ionkov.net> Cc: Eric Van Hensbergen <ericvh@ericvh.myip.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> |
||
|---|---|---|
| .. | ||
| 9p.c | ||
| 9p.h | ||
| Makefile | ||
| conv.c | ||
| conv.h | ||
| debug.h | ||
| error.c | ||
| error.h | ||
| fid.c | ||
| fid.h | ||
| mux.c | ||
| mux.h | ||
| trans_fd.c | ||
| trans_sock.c | ||
| transport.h | ||
| v9fs.c | ||
| v9fs.h | ||
| v9fs_vfs.h | ||
| vfs_addr.c | ||
| vfs_dentry.c | ||
| vfs_dir.c | ||
| vfs_file.c | ||
| vfs_inode.c | ||
| vfs_super.c | ||