1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/OpenCloudOS-libfuse

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
ChangeLog.rst 40 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.03.2025 18:43 7cd96e3

Нераскрытые изменения

  • Добавлена поддержка флага FOPEN_NOFLUSH для избежания сброса при закрытии.
  • Устранено возвращение ошибочного состояния в ioctl(2)

libfuse 3.10.5 (2021-09-06)

  • Внесены различные улучшения для повышения надежности модульных тестов.

libfuse 3.10.4 (2021-06-09)

  • Теперь сборка модульных тестов является опциональной.
  • Устранено падение тестов при выполнении тестов под управлением XFS.
  • Устранены утечки памяти в примерах.
  • Небольшие исправления документации.

libfuse 3.10.3 (2021-04-12)

  • Устранено возвращение d_ino и d_type из readdir(3) в режиме без плюса

libfuse 3.10.2 (2021-02-05)

  • Разрешено использование опции "nonempty" как монтировочной опции для обратной совместимости с fusermount 2. Эта опция больше не имеет эффекта, так как монтирование над непустыми директориями теперь допускается по умолчанию.
  • Устранено возвращение номеров inode из readdir() в режиме offset==0.
  • Теперь можно монтировать файловые системы FUSE под точками монтирования EXFAT.
  • Внесены различные незначительные исправления.

libfuse 3.10.1 (2020-12-07)

  • Внесены различные незначительные исправления.

libfuse 3.10.0 (2020-10-09)

  • Добавлен FUSE_CAP_CACHE_SYMLINKS: позволяет кэшировать символические ссылки в ядре.
  • Внесены различные незначительные исправления и улучшения.

libfuse 3.9.4 (2020-08-09)

Это был "случайный" выпуск, эквивалентный Yöntem 3.9.3.

libfuse 3.9.3 (2020-08-09)

  • Устранено возникновение ошибок компиляции под OS X и µClibc.
  • Небольшие исправления ошибок и обновление документации.

libfuse 3.9.2 (2020-06-12)

  • Удалены устаревшие работы по обходу в примерах.
  • Не требуется компилятор C++ для сборки.
  • Небольшие исправления ошибок.

libfuse 3.9.1 (2020-03-19)

  • Устранено утечка памяти в fuse_session_new().
  • Устранено проблему с версией скрипта линковщика.
  • Сделана условной прототип ioctl на основе FUSE_USE_VERSION. Определите FUSE_USE_VERSION < 35 для получения старого прототипа ioctl с командами типа int; определите FUSE_USE_VERSION >= 35 для получения нового прототипа ioctl с командами типа unsigned int.
  • Внесены различные незначительные исправления ошибок.

libfuse 3.9.0 (2019-12-14)

  • Добавлена поддержка FUSE_EXPLICIT_INVAL_DATA для возможности отключения кэширования страниц при явном запросе.

libfuse 3.8.0 (2019-11-03)

  • Добавлена поддержка операции FUSE_LSEEK для отчета о дырах в разреженных файлах.

libfuse 3.7.0 (2019-09-27)

  • Добавлен UFSD в список разрешенных (так что пользователи могут монтировать файловые системы FUSE на точки монтирования внутри файловых систем UFSD).
  • Добавлена поддержка пользовательских функций обработки сообщений журналирования, чтобы приложения libfuse могли направлять сообщения в syslog(3) или другие системы журналирования. stderr остается значением по умолчанию. Смотрите fuse_log.h для новой API.

libfuse 3.6.2 (2019-07-09)

  • Инициализационный скрипт теперь устанавливается по умолчанию в /etc/, а не в /usr/local/etc/.

libfuse 3.6.1 (2019-06-13)

  • Устранено неверное указание версии (выпуск 3.6.0 был выпущен с объявлением версии 3.0.0).

libfuse 3.6.0 (2019-06-13)

  • Добавлен новый пример (passthrough_hp). Функциональность аналогична passthrough_ll, но реализация ориентирована на производительность и корректность, а не простоту.
  • Добавлена поддержка ядерного свойства FUSE_MAX_PAGES которое позволяет увеличивать максимальное количество страниц используемых на одном запросе. Это свойство было введено в ядрах начиная с версии 4.20. FUSE_MAX_PAGES устанавливается на основе значения FUSE_MAX_WRITE. По умолчанию FUSE_MAX_WRITE будет равен 1МБ для ядер поддерживающих FUSE_MAX_PAGES. Если вам нужны меньшие буферы или записи, вы должны установить FUSE_MAX_WRITE вручную.

libfuse 3.5.0 (2019-04-16)

  • Изменены команды ioctl на "unsigned int" для поддержки команд, которые не помещаются в signed int. Команды, отправляемые приложениями, все еще обрезаются до 32 бит.
  • Добавлен SMB2 в список разрешенных (так что пользователи могут монтировать файловые системы FUSE на точки монтирования внутри файловых систем SMB 2.0).
  • Добавлен новый флаг cache_readdir в fuse_file_info для активации кэширования результатов readdir. Поддерживается в ядрах 4.20 и более новых.
  • Добавлена поддержка и документация для FUSE_CAP_NO_OPENDIR_SUPPORT.

libfuse 3.4.2 (2019-03-09)

  • Устранено утечка памяти в examples/passthrough_ll.c.
  • Добавлен OpenAFS в список разрешенных (так что пользователи могут монтировать файловые системы FUSE на точки монтирования внутри файловых систем OpenAFS).
  • Добавлен HFS+ в список разрешенных (так что пользователи могут монтировать файловые системы FUSE на точки монтирования внутри файловых систем HFS+).
  • Обновления документации.

libfuse 3.4.1 (2018-12-22)

  • Пример файловой системы examples/passthrough_ll.c значительно расширен.
  • Добавлена поддержка copy_file_range.
  • Обновления системы сборки для систем не-Linux.

libfuse 3.4.0

  • Добавлена поддержка copy_file_range() для эффективного копирования данных из одного файла в другой.

libfuse 3.3.0 (2018-11-06)

  • Режим auto_unmount теперь работает правильно вместе с autofs.
  • Возможность использования FUSE_CAP_READDIRPLUS_AUTO теперь включена по умолчанию только если файловая система определяет как readdir(), так и readdirplus() обработчики.
  • Улучшено описание флага FUSE_CAP_READDIRPLUS_AUTO.
  • Разрешено передача открытых файловых дескрипторов /dev/fuse через точки монтирования специального формата /dev/fd/%u. Это позволяет выполнять монтирование через родителя, делая процесс файловой системы FUSE полностью недоступным для привилегий.
  • Добавлена опция drop_privileges для mount.fuse3, которая открывает /dev/fuse и выполняет монтирование файловой системы, затем запускает файловую систему FUSE полностью недоступной для восстановления привилегий через setuid, fscaps и т.д.* Документировано, при каких условиях функции fuse_lowlevel_notify_* могут заблокировать.

libfuse 3.2.6 (2018-08-31)

  • Функция fuse_main() теперь возвращает более детализированные коды ошибок.
  • Файловые системы FUSE теперь могут быть монтированы на точки монтирования внутри файловых систем bcachefs, aufs и FAT.
  • libfuse может использоваться как подпроект Meson.
  • Устранено несколько низко-влиятельных утечек памяти.
  • Файл конфигурации fuse.conf больше не ищется в /etc, а в директории sysconfdir (которую можно установить с помощью meson configure). По умолчанию, это расположение будет /usr/local/etc/fuse.conf.

libfuse 3.2.5 (2018-07-24)

  • БЕЗОПАСНОЕ ОБНОВЛЕНИЕ: В предыдущих версиях libfuse было возможно для неквалифицированных пользователей указывать опцию allow_other, даже когда это запрещено в /etc/fuse.conf. Уязвимость существует только на системах, где активен SELinux (включая режим permissive).
  • Программа fusermount была усиленна несколькими способами для снижения потенциальной поверхности атак. В частности, точки монтирования и опции монтирования теперь должны соответствовать жестко зафиксированному списку разрешенных. Ожидается, что этот список покроет все обычные случаи использования.
  • Добавлен тест seekdir в test_syscalls.
  • Устранено баг readdir, когда ненулевые смещения передаются filler и клиенту файловой системы, после чтения всей директории, она снова читается с ненулевым смещением, например, вызывая seekdir, а затем readdir.

libfuse 3.2.4 (2018-07-11)

  • Устранено мертвое замыкание rename на FreeBSD.

libfuse 3.2.3 (2018-05-11)

  • Устранено несколько предупреждений компилятора.

libfuse 3.2.2 (2018-03-31)

  • Добавлен пример конфигурационного файла fuse.conf.
  • Добавлена поддержка опции -o nofail (опция принимается и игнорируется).
  • Внесены несколько незначительных исправлений ошибок.

libfuse 3.2.1 (2017-11-14)

  • Внесены несколько незначительных исправлений ошибок.

libfuse 3.2.0 (2017-09-12)

  • Поддержка сборки с autotools удалена.
  • Добавлен новый метод fuse_invalidate_path() для кэширования из высокого уровня API FUSE, вместе с примером и тестами.
  • Есть новый пример printcap, который можно использовать для определения возможностей текущего ядра.
  • fuse_loop_mt() теперь возвращает минус реальный код ошибки, если произошла ошибка (вместо просто -1).
  • fuse_loop() больше не возвращает положительное значение, если цикл файловой системы завершен без ошибок или сигналов.
  • Улучшено описание функций fuse_lowlevel_notify_*.
  • fuse_lowlevel_notify_inval_inode() и fuse_lowlevel_notify_inval_entry() теперь возвращают -ENOSYS вместо неопределенной ошибки, если функция не поддерживается ядром.
  • Документировано особое значение нулевого смещения для функции fuse_fill_dir_t.
  • Пример passthrough_fh теперь работает под FreeBSD.
  • libfuse теперь может быть собран без libiconv.
  • Устранено несколько проблем компиляции под FreeBSD.
  • Устранено место установки правил udev.
  • Устранено проблему компиляции с LTO.

libfuse 3.1.1 (2017-08-06)

  • Документация: уточнено, как файловые системы должны обрабатывать флаги open() и create() (см. include/fuse_lowlevel.h).
  • Устранено проблему компиляции примера passthrough_ll на 32-битных системах (неверная проверка и неверное сообщение об ошибке).
  • Теперь используется pkg-config для определения правильной директории для правил udev.
  • Устранено проблему версионирования символов, которое приводило к странным сбоям (segmentation fault, неожидаемое поведение) в различных ситуациях.
  • Устранено падение тестов, когда /tmp находится на btrfs.
  • Теперь можно настроить максимальное число свободных рабочих потоков, используемых fuse_loop_mt().
  • fuse_loop_mt() и fuse_session_loop_mt() теперь принимают параметр struct fuse_loop_config, который преобразует параметр clone_fd.
  • Включены несколько патчей из порта FreeBSD. libfuse теперь должна компилироваться под FreeBSD без необходимости применения патчей.
  • Пример passthrough_ll теперь поддерживает кэширование записи обратной связи.

libfuse 3.1.0 (2017-07-08)

  • Добавлена новая функция fuse_lib_help(). Файловые системы, которые ранее передавали опцию --help в fuse_new(), должны теперь обрабатывать эту опцию внутренне и вызывать fuse_lib_help() для вывода справки по общим опциям FUSE.
  • Исправлено описание поля fuse_conn_info->time_gran. По умолчанию значение ноль действительно соответствует полному разрешению в наносекунды, а не одной секунде.
  • Скрипт инициализации теперь устанавливается в правильное место ($DESTDIR/etc/init.d вместо $prefix/$sysconfdir/init.d).
  • Файловая система example/passthrough_ll теперь поддерживает создание и запись в файлы.
  • fuse_main() / fuse_remove_signal_handlers(): больше не сбрасывает обработчик сигнала SIGPIPE до значения по умолчанию, если он был установлен нами.
  • Документация для флагов RENAME_EXCHANGE и RENAME_NOREPLACE, которые могут быть переданы обработчику rename как для высокого, так и для низкого уровней API. Разработчикам файловых систем настоятельно рекомендуется проверять корректность обработки этих флагов.

libfuse 3.0.2 (2017-05-24)

  • Парсинг опций для высокого уровня API теперь работает правильно (ранее значения по умолчанию перезаписывали указанные значения).
  • Теперь тесты должны компилироваться и выполняться под FreeBSD.
  • Улучшена документация для struct fuse_context.
  • Внутри: вычисление размера буфера запроса производится из размера страницы и ограничения страниц ядра вместо использования жестко закодированного лимита 128 КБ.

libfuse 3.0.1 (2017-04-10) ==========================* Вновь введен пример examples/null.c. * Добавлена экспериментальная поддержка сборки с использованием Meson. * Документация указывает, что -o auto_unmount подразумевает -o nodev,nosuid. * Документация указывает, что опция use_ino высокого уровня API не влияет на inode, используемые libfuse и ядром. * Исправлены тестовые случаи для примеров passthrough* (они фактически не тестировали примеры). * Исправлены несколько ошибок в примерах passthrough*.

libfuse 3.0.0 (2016-12-08)

  • ОБСУЖДЕНИЕ ДЛЯ ПАКЕТОВЩИКОВ:

    libfuse 3 спроектирован для совместной установки с libfuse 2. Однако некоторые файлы будут установлены как libfuse 2, так и libfuse 3 (например, /etc/fuse.conf, скрипты udev и init, и мануал mount.fuse(8)). Эти файлы следует брать из libfuse 3. Формат/содержимое гарантированно остаётся обратно совместимым с libfuse 2.

    Мы рекомендуем выпускать три отдельных пакета: libfuse-common, содержащий файлы, общие для libfuse 2 и 3 (взятые из tar-архива libfuse3), и libfuse2 и libfuse3, содержащие общую библиотеку и вспомогательные программы для соответствующей версии.

  • Исправлены ошибки тестирования при выполнении тестов от имени root.

  • Улучшен контроль за версией util-linux.

  • Добавлена документация для всех флагов способностей FUSE (FUSE_CAP_*) и полей struct fuse_conn_info.

  • fuse_loop(), fuse_loop_mt(), fuse_session_loop() и fuse_session_loop_mt() теперь возвращают более подробные коды ошибок вместо просто -1. Подробнее см. документацию fuse_session_loop().

  • Основной цикл FUSE теперь прерывается, если файловая система запрашивает возможности, которые не поддерживаются ядром. В этом случае сессия завершается с кодом выхода -EPROTO.

  • Большинство возможностей файловой системы, которые были опциональными в libfuse2, теперь активируются по умолчанию. Разработчикам файловых систем рекомендуется просмотреть документацию по фичам FUSE_CAP_* для обеспечения совместимости своей файловой системы с новыми семантиками. Как прежде, конкретная возможность всё ещё может быть отключена путём сброса соответствующего бита fuse_conn_info.wants в обработчике init().

  • Добавлены флаги способностей FUSE_CAP_PARALLEL_DIROPS и FUSE_CAP_POSIX_ACL, а также флаг FUSE_HANDLE_KILLPRIV.

  • Файловые системы, использующие низкий уровень API, теперь ответственны за сброс флагов setuid/setgid при записи файла, его обрезании или изменении владельца. Ранее это было обязанностью ядра, но подвержено расхождениям.

  • Бинарники fusermount и mount.fuse переименованы в fusermount3 и mount.fuse3 для совместной установки libfuse 2.x и 3.x.

  • Добавлено поле max_read в struct fuse_conn_info. На данный момент максимальный размер запроса чтения должен быть указан как там, так и передан через fuse_session_new() с помощью опции монтирования -o max_read=<n>. В будущем указание этой опции может стать необязательным.

  • Документация: уточнено, что структура fuse_argv, передаваемая в fuse_new() и fuse_lowlevel_new(), всегда должна содержать хотя бы один элемент.

  • Обработчик init() высокого уровня API теперь получает дополнительный указатель на структуру fuse_config, который можно использовать для настройки специфических опций API высокого уровня.

  • Поле nopath_flag структуры fuse_operations удалено. Вместо этого новый флаг nullpath_ok теперь может быть установлен в структуре fuse_config.

  • Файловые системы, использующие низкий уровень API и поддерживающие запросы поиска для '.' и '..' должны продолжать убедиться, что они устанавливают бит FUSE_CAP_EXPORT_SUPPORT в fuse_conn_info->want.

    (Это было всегда так, но не очевидно из документации).

  • Текст помощи, генерируемый fuse_lowlevel_help(), fuse_new() (и косвенно fuse_main()), больше не включает опции, которые маловероятно интересуют конечных пользователей. Полный список принимаемых опций теперь включен в документацию соответствующих функций (расположены в fuse.h/fuse_lowlevel.h и doc/html).

  • Опция монтирования -o nopath удалена — она никогда не делала ничего (поскольку она условно перезаписывается значением флага nopath в структуре fuse_operations).

  • Опция монтирования -o large_read удалена. Надеюсь, никто уже не использует Linux 2.4.

  • Опция монтирования -o nonempty удалена, монтирование над непустыми директориями теперь всегда разрешено. Это приводит поведение файловых систем FUSE в соответствие с поведением обычной команды mount.

    Файловые системы, которые не хотят позволять монтирование на непустые директории, должны выполнять эту проверку самостоятельно перед тем, как передать управление libfuse.

  • Обработчики chmod, chown, truncate, utimens и getattr высокого уровня API теперь все получают дополнительный указатель на структуру fuse_file_info (хотя он может быть NULL даже если файл открыт).

    Обработчики fgetattr и ftruncate стали устаревшими и удалены.

  • Функция fuse_session_new больше не принимает опцию -o clone_fd. Вместо этого это стало параметром функций fuse_session_loop_mt и fuse_loop_mt.

  • Для низкого уровня файловых систем, реализующих обработчик write_buf, опция splice_read теперь активируется по умолчанию. Как обычно, это можно изменить в обработчике init() файловой системы.

  • Обработка низкого уровня опций стала более последовательной:

    Опции, которые могут быть установлены в обработчике init() (через параметр fuse_conn_info), теперь могут быть установлены только здесь, то есть fuse_session_new() больше не принимает аргументы, меняющие объект fuse_conn_info до или после вызова init(). В результате этого устранены двусмысленности, где некоторые опции могут быть перезаписаны init(), а другие перезаписывают выборы, сделанные init().

    Для файловых систем, которые хотят предлагать командные строки для этих настроек, доступны новые функции fuse_parse_conn_info_opts() и fuse_apply_conn_info_opts().

    Соответственно, метод fuse_lowlevel_help() был удален.* Поле async_read структуры fuse_conn_info удалено. Чтобы определить, поддерживает ли ядро асинхронное чтение, файловые системы должны проверять бит FUSE_CAP_ASYNC_READ поля capable. Чтобы включить/выключить асинхронное чтение, файловые системы должны установить этот флаг в поле wanted.

  • Функция fuse_parse_cmdline больше не выводит помощь при наличии флагов --verbose или --help. Это должно быть сделано файловой системой (например, используя функции fuse_cmdline_help() и fuse_lowlevel_help()).

  • Добавлен пример example/cuse_client.c для тестирования example/cuse.c.

  • Удалён пример example/null.c. Он не работал некоторое время по неизвестной причине — возможно потому, что он пытался рассматривать точку монтирования как файл, а не директорию?

  • Есть несколько новых примеров, демонстрирующих использование функций fuse_lowlevel_notify_*:

    • example/notify_store_retrieve.c
    • example/notify_inval_inode.c
    • example/notify_inval_entry.c
  • Опция монтирования -o big_writes удалена. Она теперь всегда активна. Файловые системы, которые хотят ограничивать размер запросов записи, должны использовать опцию -o max_write=<N>.

  • Функция fuse_lowlevel_new переименована в fuse_session_new и больше не интерпретирует опции --version или --help. Чтобы выводить информацию о помощи или версии, используйте новые функции fuse_lowlevel_help и fuse_lowlevel_version.

  • Опции монтирования allow_other и allow_root (принимаемые функцией fuse_session_new()) теперь могут быть указаны вместе. В этом случае allow_root имеет приоритет.

  • Есть новые функции fuse_session_unmount и fuse_session_mount, которые должны использоваться в низком уровне API. Функции fuse_mount и fuse_unmount должны использоваться только с высоким уровнем API.

  • Ни fuse_mount, ни fuse_session_mount больше не принимают параметры типа struct fuse_opts. Опции монтирования парсятся функциями fuse_new (для высокого уровня API) и fuse_session_new (для низкого уровня API). Чтобы выводить информацию о помощи или версии, используйте новые функции fuse_mount_help и fuse_mount_version.

  • Все функции fuse_lowlevel_notify_* теперь принимают параметр типа struct fuse_session вместо struct fuse_chan. Интерфейс канала (функции fuse_chan_*) был сделан приватным. В результате типичная последовательность инициализации низкоуровневой файловой системы изменилась с:

    ch = fuse_mount(mountpoint, &args); se = fuse_lowlevel_new(&args, &lo_oper, sizeof(lo_oper), &lo); fuse_set_signal_handlers(se); fuse_session_add_chan(se, ch); fuse_daemonize(fg); if (mt)

    fuse_session_loop_mt(se);

    else

    fuse_session_loop(se);

    fuse_remove_signal_handlers(se); fuse_session_remove_chan(ch); fuse_session_destroy(se); fuse_unmount(mountpoint, ch);

на:

se = fuse_session_new(&args, &ll_ops, sizeof(ll_ops), NULL); fuse_set_signal_handlers(se); fuse_session_mount(se, mountpoint); fuse_daemonize(fg); if (mt)

fuse_session_loop_mt(se);
else
fuse_session_loop(se);

fuse_remove_signal_handlers(se); fuse_session_unmount(se); fuse_lowlevel_destroy(se);

Типовая конфигурация высокого уровня изменилась с:

ch = fuse_mount(*mountpoint, &args); fuse = fuse_new(ch, &args, op, op_size, user_data); se = fuse_get_session(fuse); fuse_set_signal_handlers(se); fuse_daemonize(fg); if (mt)

fuse_loop_mt(fuse);
else
fuse_loop(fuse);

fuse_remove_signal_handlers(se); fuse_unmount(mountpoint, ch); fuse_destroy(fuse);

на:

fuse = fuse_new(&args, op, op_size, user_data); se = fuse_get_session(fuse); fuse_set_signal_handlers(se); fuse_mount(fuse, mountpoint); fuse_daemonize(fg); if (mt)

fuse_loop_mt(fuse);
else
fuse_loop(fuse);

fuse_remove_signal_handlers(se); fuse_unmount(fuse); fuse_destroy(fuse)

Файловые системы, использующие fuse_main, не затронуты этим изменением.

Для интеграции с пользовательскими циклами событий новая функция fuse_session_fd предоставляет файловый дескриптор, используемый для связи с ядром.

  • Добавлено определение clone_fd. Это создает отдельный файловый дескриптор устройства для каждого потока выполнения, что может повысить производительность.
  • Добавлено определение writeback_cache. При использовании ядра версии 3.14 и выше это включает обратное кэширование записи, которое может значительно увеличить производительность.
  • Добавлено определение async_dio. При использовании ядра версии 3.13 и выше это позволяет выполнять асинхронное чтение/запись напрямую.
  • Обработчики (высокого и низкого уровней) rename теперь принимают параметр flags (со значениями, соответствующими системному вызову renameat2, введенному в Linux 3.15).
  • Сервер "ulockmgr_server" был удален.
  • Введен новый (низкий уровень) обработчик readdirplus, с соответствующим примером в examples/fuse_lo-plus.c и новым API-функционалом fuse_add_direntry_plus.
  • Обработчик (высокого уровня) readdir теперь принимает аргумент flags.
  • Функция filler, передаваемая в readdir, теперь принимает дополнительный аргумент flags.
  • Обработчик (высокого уровня) getdir был удален.
  • Флаги flag_nullpath_ok и flag_utime_omit_ok были удалены.
  • Обработчик (высокого уровня) utime был удален.
  • Функция fuse_invalidate была удалена.
  • Функция fuse_is_lib_option была удалена.
  • Поле fh_old структуры struct fuse_file_info было удалено.
  • Тип поля writepage структуры struct fuse_file_info был изменен с int на unsigned int.
  • Структура struct fuse_file_info получила новое поле poll_events.
  • Введена новая функция fuse_pkgversion.
  • Типы данных fuse_off_t и fuse_ino_t были изменены с unsigned long на uint64_t, то есть они теперь имеют размер 64 бит даже на 32-битных системах.
  • Тип данных поля generation структуры struct fuse_entry_param* был изменен с unsigned на uint64_t.
  • Обработчик (низкого уровня) setattr получил новый бит FUSE_SET_ATTR_CTIME для его параметра to_set.
  • Структура данных struct fuse_session_ops была удалена.
  • Документация была уточнена и улучшена во многих местах.

FUSE 2.9.7 (2016-06-20)

  • Добавлена поддержка SELinux.
  • Устранена проблема гонки при завершении сессии сразу после запуска FUSE файловой системы.

FUSE 2.9.6 (2016-04-23)

  • Архив tarball теперь включает документацию.
  • Версия shared object теперь правильно увеличена.

FUSE 2.9.5 (2016-01-14)

  • Новый ответственный за поддержку: Nikolaus Rath <nikolaus@rath.org>. Большое спасибо Miklos Szeredi <miklos@szeredi.hu> за развитие FUSE до настоящего состояния!
  • Исправлено предупреждение в mount.c:receive_fd(). Отчет предоставлен Albert Berger.* исправление возможной утечки памяти. Отчёт предоставлен Jose R. Guzman.

FUSE 2.9.4 (2015-05-22)

  • исправление окружения выполнения для монтирования и демонтирования. Найдено Tavis Ormandy (CVE-2015-3202).
  • исправление fuse_remove_signal_handlers() для правильного восстановления стандартного обработчика сигналов. Отчёт предоставлен: Chris Johnson.
  • API высокого уровня: исправление файла каталога, переданного методу ioctl(). Отчёт предоставлен Eric Biggers.
  • libfuse: документация по избежанию мёртвых замков для fuse_notify_inval_entry() и fuse_notify_delete().
  • fusermount, libfuse: отправка значений как беззнаковых в опциях "user_id=" и "group_id=". Uids/gids больше чем 2147483647 приводили бы к ошибке EINVAL при монтировании файловой системы. Это также требует исправления в ядре.
  • Инициализация статического буфера, переданного в ->getattr() и ->fgetattr(), установлена в ноль во всех случаях. Отчёт предоставлен Daniel Iwan.
  • libfuse: добавление недостающих include. Это позволяет скомпилировать fuse с помощью musl. Патч предоставлен Daniel Thau.

Старшие Версии (до 2013-01-01)

Пожалуйста, просмотрите историю Git, например здесь: https://github.com/libfuse/libfuse/blob/fuse_2_9_3/ChangeLog.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/OpenCloudOS-libfuse.git
git@api.gitlife.ru:oschina-mirror/OpenCloudOS-libfuse.git
oschina-mirror
OpenCloudOS-libfuse
OpenCloudOS-libfuse
master