Re: [PATCH -mm] swsusp: Freeze filesystems during suspend (rev. 2)

Andrew Morton
2006-11-01T19:55:13Z

On Wed, 1 Nov 2006 18:53:07 +0100
"Rafael J. Wysocki" <rjw@sisk.pl> wrote:

> +void freeze_filesystems(void)
> +{
> + struct super_block *sb;
> +
> + lockdep_off();
> + /*
> + * Freeze in reverse order so filesystems dependant upon others are
> + * frozen in the right order (eg. loopback on ext3).
> + */
> + list_for_each_entry_reverse(sb, &super_blocks, s_list) {
> + if (!sb->s_root || !sb->s_bdev ||
> + (sb->s_frozen == SB_FREEZE_TRANS) ||
> + (sb->s_flags & MS_RDONLY) ||
> + (sb->s_flags & MS_FROZEN))
> + continue;
> +
> + freeze_bdev(sb->s_bdev);
> + sb->s_flags |= MS_FROZEN;
> + }
> + lockdep_on();
> +}
> +
> +/**
> + * thaw_filesystems - unlock all filesystems
> + */
> +void thaw_filesystems(void)
> +{
> + struct super_block *sb;
> +
> + lockdep_off();
> +
> + list_for_each_entry(sb, &super_blocks, s_list)
> + if (sb->s_flags & MS_FROZEN) {
> + sb->s_flags &= ~MS_FROZEN;
> + thaw_bdev(sb->s_bdev, sb);
> + }
> +
> + lockdep_on();
> +}

argh.

The uncommented, unchangelogged lockdep_off() calls are completely
mysterious right now, even before the patch is merged. They will not
become less mysterious over time.

Please, take pity upon the readers of your code. Add a comment.