Commit 576215cf authored by Jan Kara's avatar Jan Kara
Browse files

fs: Drop wait_unfrozen wait queue



wait_unfrozen waitqueue is used only in quota code to wait for
filesystem to become unfrozen. In that place we can just use
sb_start_write() - sb_end_write() pair to achieve the same. So just
remove the waitqueue.

Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
Message-Id: <20230525141710.7595-1-jack@suse.cz>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
parent b8b9e8b3
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -895,8 +895,9 @@ static struct super_block *quotactl_block(const char __user *special, int cmd)
			up_write(&sb->s_umount);
		else
			up_read(&sb->s_umount);
		wait_event(sb->s_writers.wait_unfrozen,
			   sb->s_writers.frozen == SB_UNFROZEN);
		/* Wait for sb to unfreeze */
		sb_start_write(sb);
		sb_end_write(sb);
		put_super(sb);
		goto retry;
	}
+0 −4
Original line number Diff line number Diff line
@@ -236,7 +236,6 @@ static struct super_block *alloc_super(struct file_system_type *type, int flags,
					&type->s_writers_key[i]))
			goto fail;
	}
	init_waitqueue_head(&s->s_writers.wait_unfrozen);
	s->s_bdi = &noop_backing_dev_info;
	s->s_flags = flags;
	if (s->s_user_ns != &init_user_ns)
@@ -1706,7 +1705,6 @@ int freeze_super(struct super_block *sb)
	if (ret) {
		sb->s_writers.frozen = SB_UNFROZEN;
		sb_freeze_unlock(sb, SB_FREEZE_PAGEFAULT);
		wake_up(&sb->s_writers.wait_unfrozen);
		deactivate_locked_super(sb);
		return ret;
	}
@@ -1722,7 +1720,6 @@ int freeze_super(struct super_block *sb)
				"VFS:Filesystem freeze failed\n");
			sb->s_writers.frozen = SB_UNFROZEN;
			sb_freeze_unlock(sb, SB_FREEZE_FS);
			wake_up(&sb->s_writers.wait_unfrozen);
			deactivate_locked_super(sb);
			return ret;
		}
@@ -1768,7 +1765,6 @@ static int thaw_super_locked(struct super_block *sb)
	sb->s_writers.frozen = SB_UNFROZEN;
	sb_freeze_unlock(sb, SB_FREEZE_FS);
out:
	wake_up(&sb->s_writers.wait_unfrozen);
	deactivate_locked_super(sb);
	return 0;
}
+0 −1
Original line number Diff line number Diff line
@@ -1146,7 +1146,6 @@ enum {

struct sb_writers {
	int				frozen;		/* Is sb frozen? */
	wait_queue_head_t		wait_unfrozen;	/* wait for thaw */
	struct percpu_rw_semaphore	rw_sem[SB_FREEZE_LEVELS];
};