rq_bc_pa_list manipulated under incorrect lock?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Trond-

While reviewing xprt_complete_bc_request(), I noticed this:

326         spin_lock(&bc_serv->sv_cb_lock);

327         list_del(&req->rq_bc_pa_list);   <<<<<<<

328         list_add(&req->rq_bc_list, &bc_serv->sv_cb_list);
329         wake_up(&bc_serv->sv_cb_waitq);
330         spin_unlock(&bc_serv->sv_cb_lock);

Other places in the code hold xprt->bc_pa_lock when updating
rq_bc_pa_list. Maybe not a big deal because xprt->transport_lock is
held across the lookup and complete calls?

Introduced by commit 2ea24497a1b3 ("SUNRPC: RPC callbacks
may be split across several TCP segments”).

Since I’m new to this code, maybe I misunderstood something.

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com



--
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




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux