Jaegeuk Kim 4f99484d27 f2fs: complete checkpoints during remount
Otherwise, pending checkpoints can contribute a race condition to give a
quota warning.

- Thread                      - checkpoint thread
                              add checkpoints to the list
do_remount()
 down_write(&sb->s_umount);
 f2fs_remount()
                              block_operations()
                               down_read_trylock(&sb->s_umount) = 0
 up_write(&sb->s_umount);
                               f2fs_quota_sync()
                                dquot_writeback_dquots()
                                 WARN_ON_ONCE(!rwsem_is_locked(&sb->s_umount));

Or,

do_remount()
 down_write(&sb->s_umount);
 f2fs_remount()
                              create a ckpt thread
                              f2fs_enable_checkpoint() adds checkpoints
			      wait for f2fs_sync_fs()
                              trigger another pending checkpoint
                               block_operations()
                                down_read_trylock(&sb->s_umount) = 0
 up_write(&sb->s_umount);
                                f2fs_quota_sync()
                                 dquot_writeback_dquots()
                                  WARN_ON_ONCE(!rwsem_is_locked(&sb->s_umount));

Cc: stable@vger.kernel.org
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-09-12 23:07:20 -07:00
..
2022-07-02 18:52:21 +09:00
2022-08-13 17:20:51 -07:00
2022-08-28 10:44:04 -07:00
2022-08-08 20:04:35 -07:00
2022-08-11 13:11:49 -07:00
2022-06-29 08:51:06 -04:00
2022-08-03 10:35:43 -07:00
2022-05-09 16:21:45 -04:00
2022-08-08 20:04:35 -07:00
2022-08-11 13:11:49 -07:00
2022-08-03 10:35:43 -07:00
2022-08-22 11:40:01 -07:00
2022-08-09 14:56:49 -07:00
2022-08-03 10:35:43 -07:00
2022-07-26 13:38:47 +02:00
2022-08-03 10:35:43 -07:00
2022-08-22 11:33:02 -07:00
2022-08-03 14:38:02 -07:00
2022-08-03 10:35:43 -07:00
2022-05-09 16:21:46 -04:00
2022-05-23 20:24:12 -05:00
2022-08-03 10:35:43 -07:00
2022-07-15 23:42:30 -07:00
2022-08-13 13:50:11 -07:00
2022-08-11 13:11:49 -07:00
2022-08-03 10:35:43 -07:00
2022-07-16 09:19:15 -04:00
2022-08-19 14:02:24 -07:00
2022-04-01 19:35:56 -07:00
2022-07-24 18:39:10 -06:00
2022-08-03 10:35:43 -07:00
2022-08-09 09:52:28 -07:00
2022-06-28 13:58:05 -04:00
2022-05-22 21:03:01 +01:00
2022-08-08 11:10:02 -07:00