Re: [PATCH v3 0/2] nfs/sunrpc: allow freezing of tasks with NFS calls in flight
From: Rafael J. Wysocki
Date: Mon Nov 28 2011 - 15:20:07 EST
On Monday, November 28, 2011, Jeff Layton wrote:
> This patchset is a second (third?) attempt at fixing the issues with
> suspending a machine that has an active NFS mount.
>
> The bug reported against Fedora is here:
>
> https://bugzilla.redhat.com/show_bug.cgi?id=717735
>
> The main difference between v2 and this one is that this one has the new
> macros attempt to freeze before going to sleep. It's possible for the
> freezer_do_not_count() call to race with the freezer. The FREEZER_SKIP
> flag can be set after the freezer has already attempted to freeze the
> task. If so, it may just go to sleep without attempting to freeze.
>
> This set attempts to remedy this by calling try_to_freeze() after
> calling freezer_do_not_count() and before sleeping. This should prevent
> the above race.
>
> I've also fleshed out the comments a bit to nail down the semantics for
> these new functions. I'm quite open to changing the names of the
> functions as well, if anyone can suggest better alternatives.
>
> Comments and more tested would be appreciated. My goal is to get this
> in for 3.3, hopefully via Rafael's tree.
If no one objects, I'll take these patches to linux-pm/linux-next in the
next couple of days (and then to the pm-freezer branch, if there are no
visible problems with them).
Thanks,
Rafael
> Jeff Layton (2):
> sunrpc: make rpc_wait_bit_killable handle freeze events
> nfs: make TASK_KILLABLE sleeps attempt to freeze
>
> fs/nfs/inode.c | 3 ++-
> fs/nfs/nfs3proc.c | 3 ++-
> fs/nfs/nfs4proc.c | 5 +++--
> fs/nfs/proc.c | 3 ++-
> include/linux/freezer.h | 40 ++++++++++++++++++++++++++++++++++++++++
> net/sunrpc/sched.c | 3 ++-
> 6 files changed, 51 insertions(+), 6 deletions(-)
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/