- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
if (!(fs_info->workers && fs_info->delalloc_workers &&
fs_info->submit_workers && fs_info->flush_workers &&
fs_info->endio_workers && fs_info->endio_meta_workers &&
fs_info->endio_meta_write_workers &&
fs_info->endio_write_workers && fs_info->endio_raid56_workers &&
fs_info->endio_freespace_worker && fs_info->rmw_workers &&
fs_info->caching_workers && fs_info->readahead_workers &&
fs_info->fixup_workers && fs_info->delayed_workers && // <===
fs_info->fixup_workers && fs_info->extent_workers && // <===
fs_info->qgroup_rescan_workers)) {
err = -ENOMEM;
goto fail_sb_buffer;
}
В ext4 или xfs наверное условия не такие хорошие.
Кем называется? Ораклом? Как лишнее условие в ифе влияет на качество дизайна ФС?
Кстати, чем принципиально новая btrfs отличается от солнечного ZFS, и почему Oracle не захотел открывать последний после покупки Sun? Чтобы все сразу не переключились на более отлаженную технологию и btrfs не пришлось закапывать?
С ZFS работать не приходилось. Сказать чем отличается не могу.
Мое понимание причин существования btrfs - они решили изначально заложить в систему всякие фишки, над которыми люди работали со времен создания более концептуально простых систем, типа ext. Т.е. снепшоты, рейд-массивы, сжатие данных, дедупликация, репликация, объединение нескольких физических устройств в одну файловую систему и т.д. в более старых системах, это, как правило, надстройки над системой, которя в принципе, ничего этого не умеет. А тут это все встроено.
Но не все встроено... например btrfs не умеет самостоятельно справлятся с плохими секторами на устройстве, ну и, по их идеологии, не работает с утилитами типа badblocks. Поэтому, если один блок на диске посыпался, btrfs можно выбрасывать... ну, или использовать в качестве прокси какой-нибуд dmanager, который скроет плохой блок... но так жеж жить никто не захочет.
Если дизайн ФС позволяет реализовать всё это гораздо более эффективно, чем в общем случае, почему нет? ZFS, насколько я понимаю, реализует персистентную структуру данных (что-то вроде git-репозитория), поэтому взятие снэпшотов является очень дешёвой операцией (как создание ветки в гите). А поскольку она хранит чек-суммы всех данных, восстановление после ошибок должно быть в теории очень эффективной операцией.
> Efficient rebuilding of RAID arrays — a RAID controller often has to rebuild an entire disk, but ZFS can combine disk and file knowledge to limit any rebuilding to data which is actually missing or corrupt, greatly speeding up rebuilding;
Такое еще может статический анализатор отловить какой-нибудь. Типа того, который с блюющим единорогом
Нахуй так писать вообще? if'ы хотелось сэкономить?
"Как бы вы избавились от лишних условных ветвлений?" и "Что вы знаете про паттерн "Стратегия"?"
Что это убогий частный случай функций высшего порядка.
P.S. Он, кстати, помню, пытался пиариться в LKML, но представители низкоразвитой цивилизации не приняли его идей путём игнора.
Наверняка свой анализатор они на местных примерах натаскивали
> Предлагаю топ 10 лучших «лучших» фрагментов кода из собранных мною за последнее время. У этих примеров есть существенное отличие от собранных на сайте «Говнокод.ру». Если там множество примеров взято из студенческих курсовых и частных малоизвестных проектов, то мои примеры из солидных мест. Это известные open-source приложения и открытые библиотеки.
Афродита.
Вива ла Дива, Вива Виктория,
Клеопатра.
Вива ла Дива, Вива Виктория,
Афродита.
Вива ла Дива, Вива Виктория,
Клеопатра.
Вива! Вива! Вива!
https://www.govnokod.ru/8292
охуеть
CSRF VERIFECATION PASSED.
Предполагаю, ты используешь адблок или что-то подобное.