Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit abd0cf7a authored by Nathan Scott's avatar Nathan Scott Committed by Christoph Hellwig
Browse files

[XFS] Resolve an issue with xfsbufd not getting along with swsusp.



SGI Modid: xfs-linux:xfs-kern:22342a

Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
Signed-off-by: default avatarChristoph Hellwig <hch@sgi.com>
parent 764433b7
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -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);
@@ -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);