Skip to content

Commit

Permalink
[XFS] Resolve an issue with xfsbufd not getting along with swsusp.
Browse files Browse the repository at this point in the history
SGI Modid: xfs-linux:xfs-kern:22342a

Signed-off-by: Nathan Scott <nathans@sgi.com>
Signed-off-by: Christoph Hellwig <hch@sgi.com>
  • Loading branch information
Nathan Scott authored and Christoph Hellwig committed May 5, 2005
1 parent 764433b commit abd0cf7
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions fs/xfs/linux-2.6/xfs_buf.c
Original file line number Diff line number Diff line change
Expand Up @@ -1746,13 +1746,15 @@ STATIC DECLARE_COMPLETION(pagebuf_daemon_done);
STATIC struct task_struct *pagebuf_daemon_task;
STATIC int pagebuf_daemon_active;
STATIC int force_flush;

STATIC int force_sleep;

STATIC int
pagebuf_daemon_wakeup(
int priority,
unsigned int mask)
{
if (force_sleep)
return 0;
force_flush = 1;
barrier();
wake_up_process(pagebuf_daemon_task);
Expand All @@ -1778,7 +1780,12 @@ pagebuf_daemon(

INIT_LIST_HEAD(&tmp);
do {
try_to_freeze(PF_FREEZE);
if (unlikely(current->flags & PF_FREEZE)) {
force_sleep = 1;
refrigerator(PF_FREEZE);
} else {
force_sleep = 0;
}

set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout((xfs_buf_timer_centisecs * HZ) / 100);
Expand Down

0 comments on commit abd0cf7

Please sign in to comment.