Неправильное (непонятное) поведение inotify на Synology NAS

от автора

Есть устройство Synology DS212j с установленным DS 4.1.
Установлен (собран из исходников) медиа-сервер minidlna версии 1.0.25 и наблюдается странное поведение inotify при закачивании файлов с макбука.
Тестировалось с MacBook Pro 15" (OSX 10.8), MacBook Pro 15" (OSX 10.8) Retina и MacBook Air 11" (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.

ссылка на оригинал статьи http://habrahabr.ru/post/162935/