Commit c9247f49 authored by Robert Love's avatar Robert Love Committed by Linus Torvalds

[PATCH] have lockd and rpciod drop locks on exit

Neither lockd nor rpciod properly drop the BKL on exit.

Yes, the BKL is automatically relinquished on schedule but the failure
to drop the lock throws off the atomic accounting and results in a
preempt_count warning on exit.

This makes them play fair - it does not hurt.
parent c91b26b5
...@@ -203,6 +203,7 @@ lockd(struct svc_rqst *rqstp) ...@@ -203,6 +203,7 @@ lockd(struct svc_rqst *rqstp)
rpciod_down(); rpciod_down();
/* Release module */ /* Release module */
unlock_kernel();
MOD_DEC_USE_COUNT; MOD_DEC_USE_COUNT;
} }
......
...@@ -1030,6 +1030,7 @@ rpciod(void *ptr) ...@@ -1030,6 +1030,7 @@ rpciod(void *ptr)
wake_up(assassin); wake_up(assassin);
dprintk("RPC: rpciod exiting\n"); dprintk("RPC: rpciod exiting\n");
unlock_kernel();
MOD_DEC_USE_COUNT; MOD_DEC_USE_COUNT;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment