nfs: allow the v4.1 callback thread to freeze
The v4.1 callback thread has set_freezable() at the top, but it doesn't ever try to freeze within the loop. Have it call try_to_freeze() at the top of the loop. If a freeze event occurs, recheck kthread_should_stop() after thawing. Reported-by: Yanchuan Nian <ycnian@gmail.com> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
809b426c7f
commit
25d280aad8
@ -125,6 +125,9 @@ nfs41_callback_svc(void *vrqstp)
|
|||||||
set_freezable();
|
set_freezable();
|
||||||
|
|
||||||
while (!kthread_should_stop()) {
|
while (!kthread_should_stop()) {
|
||||||
|
if (try_to_freeze())
|
||||||
|
continue;
|
||||||
|
|
||||||
prepare_to_wait(&serv->sv_cb_waitq, &wq, TASK_INTERRUPTIBLE);
|
prepare_to_wait(&serv->sv_cb_waitq, &wq, TASK_INTERRUPTIBLE);
|
||||||
spin_lock_bh(&serv->sv_cb_lock);
|
spin_lock_bh(&serv->sv_cb_lock);
|
||||||
if (!list_empty(&serv->sv_cb_list)) {
|
if (!list_empty(&serv->sv_cb_list)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user