locking/percpu-rwsem: add freezable alternative to down_read
authorJames Bottomley <James.Bottomley@HansenPartnership.com>
Thu, 27 Mar 2025 14:06:10 +0000 (10:06 -0400)
committerChristian Brauner <brauner@kernel.org>
Mon, 7 Apr 2025 07:37:16 +0000 (09:37 +0200)
commit559b3bbfa978ce3b23dc9c52d09a0eddca52c439
tree1489f8567bbb6a1fceaf01f1a963bb394ab0a07d
parent0af2f6be1b4281385b618cb86ad946eded089ac8
locking/percpu-rwsem: add freezable alternative to down_read

Percpu-rwsems are used for superblock locking.  However, we know the
read percpu-rwsem we take for sb_start_write() on a frozen filesystem
needs not to inhibit system from suspending or hibernating.  That
means it needs to wait with TASK_UNINTERRUPTIBLE | TASK_FREEZABLE.

Introduce a new percpu_down_read_freezable() that allows us to control
whether TASK_FREEZABLE is added to the wait flags.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Link: https://lore.kernel.org/r/20250327140613.25178-2-James.Bottomley@HansenPartnership.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
include/linux/percpu-rwsem.h
kernel/locking/percpu-rwsem.c