]> git.baikalelectronics.ru Git - kernel.git/commit
cifs, freezer: add wait_event_freezekillable and have cifs use it
authorJeff Layton <jlayton@redhat.com>
Wed, 19 Oct 2011 19:30:40 +0000 (15:30 -0400)
committerJeff Layton <jlayton@redhat.com>
Wed, 19 Oct 2011 19:30:40 +0000 (15:30 -0400)
commitb05a234304e18f7c94d53f73442dff5e8807d84a
treec214d17cd28fcbc8c6929ca69f38d1439975cf75
parenta40b47cdcac72605fee3f68bb113cac36c9afb20
cifs, freezer: add wait_event_freezekillable and have cifs use it

CIFS currently uses wait_event_killable to put tasks to sleep while
they await replies from the server. That function though does not
allow the freezer to run. In many cases, the network interface may
be going down anyway, in which case the reply will never come. The
client then ends up blocking the computer from suspending.

Fix this by adding a new wait_event_freezable variant --
wait_event_freezekillable. The idea is to combine the behavior of
wait_event_killable and wait_event_freezable -- put the task to
sleep and only allow it to be awoken by fatal signals, but also
allow the freezer to do its job.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
fs/cifs/transport.c
include/linux/freezer.h