Warning in kref handling + kernel hangs

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

 



Hi,

I have a warning in kref handling (e.g. in 2.6.34.1) and my kernel hangs.
Should not we miss a svc_xprt_get(xprt) in the else branch of svc_xprt_enqueue() ?

int svc_recv(struct svc_rqst *rqstp, long timeout)
{
...
	xprt = svc_xprt_dequeue(pool);
	if (xprt) {
		rqstp->rq_xprt = xprt;
		svc_xprt_get(xprt);  //WARNING: at lib/kref.c:43 kref_get+0x23/0x2d()


void svc_xprt_enqueue(struct svc_xprt *xprt)
{
...
        if (!list_empty(&pool->sp_threads)) {
...
                svc_xprt_get(xprt);
...
                wake_up(&rqstp->rq_wait);
        } else {
                list_add_tail(&xprt->xpt_ready, &pool->sp_sockets);
                pool->sp_stats.sockets_queued++;
        }

Thanks,

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