Maybe rpc_pipe_msg should be protected by inode->i_lock when purge the free_list. Signed-off-by: Bian Naimeng <biannm@xxxxxxxxxxxxxx> --- net/sunrpc/rpc_pipe.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index 8d63f8f..24b2714 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c @@ -47,8 +47,10 @@ static void rpc_purge_list(struct rpc_inode *rpci, struct list_head *head, return; do { msg = list_entry(head->next, struct rpc_pipe_msg, list); + spin_lock(&rpci->vfs_inode->i_lock); list_del(&msg->list); msg->errno = err; + spin_unlock(&rpci->vfs_inode->i_lock); destroy_msg(msg); } while (!list_empty(head)); wake_up(&rpci->waitq); -- 1.6.5.2 -- Regards Bian Naimeng -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html