[lvc-project] [PATCH] f2fs: Add a flush_work() call before destroying raw_super
Fedor Pchelkin
pchelkin at ispras.ru
Thu Apr 30 17:12:29 MSK 2026
On Thu, 30. Apr 14:44, aitsygunka at yandex.ru wrote:
> > В описании выше стоит подуточнить, что именно за ошибку инициализации
> > схватил репродьюсер. На пути обработки ошибки в f2fs_fill_super() есть
> > flush этой работы, но по-видимому он не вызывается (?).
> >
>
> Да, все верно, репродьюсер приводит к трассе в f2fs_fill_super(), где по ошибке
> выполняется переход на метку free_page_array_cache.
Ок, важно в описании уточнить, что именно там происходит, что приводит к
постановке работы s_error_work в очередь на выполнение.
Плюс ещё сейчас заметил, что название патча стоит сделать более чётким,
например
f2fs: properly flush s_error_work on f2fs_fill_super() error path
> > А в целом почему имеющийся flush_work() не передвинуть на эту позицию,
> > чтобы он соотносился с INIT_WORK() выше? После INIT_WORK какая-либо
> > ошибка в какой-нибудь из функций инициализации может поставить
> > s_error_work в очередь на выполнение, и без flush не обойтись. Не сказал
> > бы, что дублирование - идеальный вариант, тут есть над чем поразмыслить.
> >
>
> Согласен, не совсем красивое решение, но т.к. многие из обработчиков могут приводить
> к вызову f2fs_record_error_work(), я пока не придумал какого-то подходящего решения,
> чтобы избежать дублирования flush_work().
> Пока есть мысли перенести flush_work() в обработчик ошибки перед переходом на метку.
Обработчик ошибки перед переходом на метку? Это в
if (smth-happens) {
// <- сюда?
goto label;
}
?
Ну, я имел ввиду перенос уже имеющегося внутри f2fs_fill_super() вызова
flush_work() на пути обработки ошибки. Верно ли он поставлен? Может
быть, его лучше переместить в другое место, ниже по коду?
More information about the lvc-project
mailing list