Есть устройство Synology DS212j с установленным DS 4.1.
Установлен (собран из исходников) медиа-сервер minidlna версии 1.0.25 и наблюдается странное поведение inotify при закачивании файлов с макбука.
Тестировалось с MacBook Pro 15" (OSX 10.8), MacBook Pro 15" Retina (OSX 10.8) и MacBook Air 13" (OSX 10.7.5)
При копировании файлов на дисковое хранилище с макбука, через Finder, minidlna постоянно (пока копируется файл) получает событие IN_CLOSE_WRITE. На получение каждого такого события идет запись нового файла в базу. Получается, что закачав 3-4 файла, мы получаем несколько десятков инстанций каждого из этих файлов в базе медиа-сервера. При закачивании из Windows, через Total Commander, minidlna получает событие IN_CLOSE_WRITE один раз для каждого файла, примерно через 1-2 секунды после окончания копирования.
В FAQ по inotify написано:
Q: What is the difference between IN_MODIFY and IN_CLOSE_WRITE?
The IN_MODIFY event is emitted on a file content change (e.g. via the write() syscall) while IN_CLOSE_WRITE occurs on closing the changed file. It means each change operation causes one IN_MODIFY event (it may occur many times during manipulations with an open file) whereas IN_CLOSE_WRITE is emitted only once (on closing the file).
Получается, что при копировании с макбука, IN_CLOSE_WRITE вызывается вместо IN_MODIFY. Но в чем разница при копировании из Windows? Ведь inotify — это подсистема ядра дискового хранилища.
Процессор на DS212j — ARM.