Lukas Czerner 13b215a9e6 ext4: don't use kfree() on rcu protected pointer sbi->s_qf_names
During ext4 mount api rework the commit e6e268cb6822 ("ext4: move quota
configuration out of handle_mount_opt()") introduced a bug where we
would kfree(sbi->s_qf_names[i]) before assigning the new quota name in
ext4_apply_quota_options().

This is wrong because we're using kfree() on rcu prointer that could be
simultaneously accessed from ext4_show_quota_options() during remount.
Fix it by using rcu_replace_pointer() to replace the old qname with the
new one and then kfree_rcu() the old quota name.

Also use get_qf_name() instead of sbi->s_qf_names in strcmp() to silence
the sparse warning.

Fixes: e6e268cb6822 ("ext4: move quota configuration out of handle_mount_opt()")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Link: https://lore.kernel.org/r/20220104143518.134465-1-lczerner@redhat.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2022-01-10 13:25:55 -05:00
..
2021-11-10 21:16:56 +00:00
2021-11-10 21:17:09 +00:00
2021-08-19 09:02:55 +09:00
2021-11-26 11:24:32 -08:00
2021-11-09 10:02:51 -08:00
2021-10-25 19:11:50 -07:00
2021-04-12 15:04:29 +02:00
2021-11-13 15:32:30 -08:00
2021-11-01 10:25:27 -07:00
2021-12-02 12:41:10 +01:00
2021-08-26 22:28:02 +02:00
2021-11-03 09:23:25 -07:00
2021-11-29 10:10:26 -08:00
2021-11-27 10:33:55 -08:00
2021-11-09 10:51:12 -08:00
\n
2021-11-06 16:40:48 -07:00
\n
2021-11-06 16:40:48 -07:00
2021-11-09 12:53:58 +01:00
2021-08-19 09:02:55 +09:00
2021-11-17 09:26:09 +01:00
2021-10-18 14:43:22 -06:00
2021-08-31 11:13:35 -07:00
2021-09-09 13:25:49 -07:00
2021-11-17 10:36:35 -05:00
2021-10-19 05:49:54 -06:00
2021-08-31 11:06:32 -07:00
2021-10-19 14:11:39 -04:00
2021-11-01 09:06:53 -07:00
2021-08-10 17:57:22 +02:00