Re: [RFC] fsfreeze: moving from uniterruptible to killable

From: Jan Kara
Date: Tue Mar 26 2013 - 17:15:29 EST


On Sun 24-03-13 10:10:59, Marco Stornelli wrote:
> When a fs is frozen, a process can hang because we wait in
> uniterruptible state. We give the user the possibility to kill the process.
Yes, but it needs slightly more work as you probably know... (bailing out
properly when the signal arrives).

Honza

>
> Not-signed-off-by: Marco Stornelli <marco.stornelli@xxxxxxxxx>
> ---
>
> --- fs/super.c.orig 2013-03-24 09:56:33.000000000 +0100
> +++ fs/super.c 2013-03-24 09:58:41.000000000 +0100
> @@ -1198,7 +1198,7 @@ retry:
> if (unlikely(sb->s_writers.frozen >= level)) {
> if (!wait)
> return 0;
> - wait_event(sb->s_writers.wait_unfrozen,
> + wait_event_killable(sb->s_writers.wait_unfrozen,
> sb->s_writers.frozen < level);
> }
>
> @@ -1248,7 +1248,7 @@ static void sb_wait_write(struct super_b
> * of frozen and checking of the counter
> */
> prepare_to_wait(&sb->s_writers.wait, &wait,
> - TASK_UNINTERRUPTIBLE);
> + TASK_KILLABLE);
>
> writers = percpu_counter_sum(&sb->s_writers.counter[level-1]);
> if (writers)
--
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR
--
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/