> Нда, оголтелые в своем репертуаре. Кто нибудь из вас хоть исходники cp
> из coreutils видел?... Хотя о чем я спрашивают - понятно что
> нет. Бред то нести это не изучать вопрос перед ответом.1) Да, я видел эти исходники. Покажи мне там "нарушение уровня абстракций", чудак. Если это про экстенты, программы всегда писали данные в файлы как (offset, len) и операция над "экстентом" мало чем отличаются, экстент это тоже (offset, len). Да, там предполагается продвинутая ФС которая понимает ряд расширенных запросов. Но как это внутри ФС сделано - программы не знают. Это абстрактный запрос в терминах операций над регионами. В ряде случаев ФС даже имеет право переиначить и выполнить "неточно", как умеет. Как минимум для "same extent" ioctl.
2) Судя по рейтингу твоего "умного" вопроса оголтелый был не я...
3) Расскажи как делать допустим офлайн дедуп или - вот - копирование-как-рефлинк по твоему суперценному мнению?
4) Если тебе интересно, я даже и ответку этих интерфейсов из 1) видел в btrfs и bcachefs.
И нет, "онлайн дедуп" жрущий 100500 рам и проца - вообще совсем не эквивалент этих операций. Которые могут быть достаточно просты, дешевы (рефлинк вообще почти моментальная штука, только в метаданных пометить что те же блоки юзаются еще кем-то) или по крайней мере дефернуты по времени ("same extent" ioctl).
Просто для понимания - btrfs делает рефлинк на 3-терабайтный образ винча создавая "типа копию" которая ведет себя как независимый файл за примерно секунду. А ты можешь, конечно, честно скопировать все 3 терабайта (не забудь засечь сколько займет) а потом по сути отменить это действо дедупом (тоже не забудь зесечь сколько это заняло). А при этом потребуется еще и +3 терабайта свободного места на такой "transient". А вон там оно с самого начала - "идеальный дедуп" и места не занимает, только то что изменится и закопировано в сторону CoW. И не уметь подобные интерфейсы для CoW системы вообще-то довольно глупо. В лине этому даже XFS каким-то чудом научился. Я не знаю как они сову на такой глобус натянули, но ZFSники сделали это сильно позже и когда non-cow дизайн получает cow фичу раньше чем cow-дизайн это полкило прикола! Bcachefs тоже это умеет с самого начала.
Итого, на данный момент в клуб новых интерфейсов вступило минимум 4 файлухи: bcachefs, btrfs, xfs, zfs. И я нахожу умение в такие фичи логичным для next-gen CoW дизайнов, классическая семантика IO операций вообще - не про них, у них by design есть фичи которые классическими апями posix не описываются.
p.s. а самое прикольное во всей этой истории что баг вообще к рефлинкам походу не относился, они "виноваты" только тем что позволили каким-то гентушникам активнее юзать вон тот кусок механики ФС, и там наконец что-то отвалилось под нагрузкой в каком-то древнем баге как воспроизводимая операция. При том отваливаться оно могло и без этого, просто ситуацию создать не очень просто - условия специфичные. По этой причине кого-то явно ждут "приятные" сюрпризы с корапченой файлухой, которую они не заметили.