summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-11-21 20:32:26 (GMT)
committerTejun Heo <tj@kernel.org>2011-11-21 20:32:26 (GMT)
commit5ece3eae4cdb968c269e0bc7e2c0e2b223552025 (patch)
tree8e38ac6fc88864eff7fbbe3fa3671a4b76cfd8e9 /fs
parent96ee6d8539c9fc6742908d85eb9723abb5c91854 (diff)
downloadlinux-fsl-qoriq-5ece3eae4cdb968c269e0bc7e2c0e2b223552025.tar.xz
freezer: restructure __refrigerator()
If another freeze happens before all tasks leave FROZEN state after being thawed, the freezer can see the existing FROZEN and consider the tasks to be frozen but they can clear FROZEN without checking the new freezing(). Oleg suggested restructuring __refrigerator() such that there's single condition check section inside freezer_lock and sigpending is cleared afterwards, which fixes the problem and simplifies the code. Restructure accordingly. -v2: Frozen loop exited without releasing freezer_lock. Fixed. Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: Oleg Nesterov <oleg@redhat.com> Acked-by: Oleg Nesterov <oleg@redhat.com> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Diffstat (limited to 'fs')
0 files changed, 0 insertions, 0 deletions