Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Christian Brauner <brauner@kernel.org>
Message-Id: <20230525141710.7595-1-jack@suse.cz>
Signed-off-by: Jan Kara <jack@suse.cz>

Jan Kara 576215cf b8b9e8b3

+3 -7
+3 -2
fs/quota/quota.c
··· 895 895 up_write(&sb->s_umount); 896 896 else 897 897 up_read(&sb->s_umount); 898 - wait_event(sb->s_writers.wait_unfrozen, 899 - sb->s_writers.frozen == SB_UNFROZEN); 898 + /* Wait for sb to unfreeze */ 899 + sb_start_write(sb); 900 + sb_end_write(sb); 900 901 put_super(sb); 901 902 goto retry; 902 903 }
-4
fs/super.c
··· 236 236 &type->s_writers_key[i])) 237 237 goto fail; 238 238 } 239 - init_waitqueue_head(&s->s_writers.wait_unfrozen); 240 239 s->s_bdi = &noop_backing_dev_info; 241 240 s->s_flags = flags; 242 241 if (s->s_user_ns != &init_user_ns) ··· 1705 1706 if (ret) { 1706 1707 sb->s_writers.frozen = SB_UNFROZEN; 1707 1708 sb_freeze_unlock(sb, SB_FREEZE_PAGEFAULT); 1708 - wake_up(&sb->s_writers.wait_unfrozen); 1709 1709 deactivate_locked_super(sb); 1710 1710 return ret; 1711 1711 } ··· 1720 1722 "VFS:Filesystem freeze failed\n"); 1721 1723 sb->s_writers.frozen = SB_UNFROZEN; 1722 1724 sb_freeze_unlock(sb, SB_FREEZE_FS); 1723 - wake_up(&sb->s_writers.wait_unfrozen); 1724 1725 deactivate_locked_super(sb); 1725 1726 return ret; 1726 1727 } ··· 1765 1768 sb->s_writers.frozen = SB_UNFROZEN; 1766 1769 sb_freeze_unlock(sb, SB_FREEZE_FS); 1767 1770 out: 1768 - wake_up(&sb->s_writers.wait_unfrozen); 1769 1771 deactivate_locked_super(sb); 1770 1772 return 0; 1771 1773 }
-1
include/linux/fs.h
··· 1146 1146 1147 1147 struct sb_writers { 1148 1148 int frozen; /* Is sb frozen? */ 1149 - wait_queue_head_t wait_unfrozen; /* wait for thaw */ 1150 1149 struct percpu_rw_semaphore rw_sem[SB_FREEZE_LEVELS]; 1151 1150 }; 1152 1151