|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Igor A. Goussarov 2:5020/400 04 Jun 2002 22:19:09 To : All Subject : floppy + samba, а сам вопрос про msdosfs --------------------------------------------------------------------------------
Привет, спецы!
Раздаю флоп по самбе. Когда юзер с виндовой машины пытается
скопировать файл на флоп, самба хочет сначала создать на флопе файл
сразу требуемого размера, а потом заполнить его приходящими данными. Hа
ffs всё гладко - создаётся файл, состоящий из одной дырки, которая потом
зарастает. А вот с msdosfs всё не так просто: при попытке изменения
размера файла она хочет не только выделить цепочку кластеров требуемого
размера, но и заполнить все эти кластеры нулями. В результате эффект
таков: пользователь копирует файл размером почти 1.4 Мб, при этом флоп
начинает писать полтора мега нулей на дискетку, пока он пишет, у виндов
даже окошка с прогрессом копирования не появляется, зато через некоторое
время появляется окошко о таймауте сетевого устройства.
Исследование показало, что в msdosfs в функции deextend используется
флажок, определяющий, будут ли забиваться нулями свежевыделенные
кластеры. Если подправить исходники ядра так, чтобы этот флажок не
использовался, то всё начинает работать на ура: окошко с прогрессом
копирования выскакивает сразу, копирование занимает в два раза меньше
времени и не сопровождается сообщениями о таймауте.
Вопрос: не напортил ли я что-нибудь, насильно отключив этот флажок? Я
особо по коду не лазил, но может обнуление выделяемых кластеров - это
принципиально важно для какой-то фичи? Hикто не знает? Или может быть у
проблемы с расшариванием флопа есть более другое решение?
FreeBSD 4.2, samba 2.2.2
Игорь
--- ifmail v.2.15dev5
* Origin: Akella (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/43884760e8b1.html, оценка из 5, голосов 10
|