Выявлено несколько проблем, связанных с этим параметром: - Во-первых, на смонтированном разделе не запускаются приложения (не работает exec) $ ls -l raw7 -rwxr-xr-x 1 nobody users 12471 Окт 15 19:50 raw7 $ ./raw7 bash: ./raw7: не могу запустить бинарный файл $ strace ./raw7 execve("./raw7", ["./raw7"], [/* 67 vars */]) = -1 ENOEXEC (Exec format error) dup(2) = 3 fcntl64(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE) fstat64(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 24), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb802f000 _llseek(3, 0, 0xbfa4a918, SEEK_CUR) = -1 ESPIPE (Illegal seek) write(3, "strace: exec: Exec format error\n", 32strace: exec: Exec format error ) = 32 close(3) = 0 munmap(0xb802f000, 4096) = 0 exit_group(1) = ? Во-вторых, без монтирования с параметром noperm возникают проблемы доступа, даже для каталогов, куда доступ разрешён. http://bugs.etersoft.ru/show_bug.cgi?id=4292#c13
Пока вопросы с проблемой readpage тестируются в etercifs-4.4.x пора приступать к проблемам direct.
Патч, решающий проблему выполнения файлов: http://git.etersoft.ru/people/piastry/packages/?p=cifs-2.6.git;a=commitdiff;h=108b485ed2f25cca3bcec0554bddb76f293c27aa Проблемы доступа обнаружить пока не удалось: [piastry@tartarus ~]$ sudo mount -t cifs //localhost/public m -ouser=piastry,direct [piastry@tartarus piastry_test]$ pwd /home/piastry/m/piastry_test [piastry@tartarus piastry_test]$ ls -l итого 0 -rw-r--r-- 1 piastry piastry 0 Окт 28 11:57 eee -rw-r--r-- 1 piastry piastry 0 Окт 28 12:00 eee2 [piastry@tartarus piastry_test]$ touch eee3 [piastry@tartarus piastry_test]$ ls -l итого 0 -rw-r--r-- 1 piastry piastry 0 Окт 28 11:57 eee -rw-r--r-- 1 piastry piastry 0 Окт 28 12:00 eee2 -rw-r--r-- 1 piastry piastry 0 Окт 29 11:59 eee3
Хотелось бы понять, вошёл ли этот патч в какую-либо сборку etercifs
(In reply to comment #3) > Хотелось бы понять, вошёл ли этот патч в > какую-либо сборку etercifs > Я указывал на порядок внесения патчей здесь: http://wiki.etersoft.ru/Etercifs/Changelog Но, вместе, с этой страницей: http://wiki.etersoft.ru/Etercifs всё перепуталось... Нужного текста там нет.
Страницы исправил.
(In reply to comment #3) > Хотелось бы понять, вошёл ли этот патч в > какую-либо сборку etercifs > Если не ошибаюсь, он полагался быть в 4.4.1 Я выложил к себе в git тестовые ветки: To git.eter:packages/cifs-2.6 * [new branch] legacy-centos52-etercifs-testing -> legacy-centos52-etercifs-testing * [new branch] legacy-centos52-etercifs-testing2 -> legacy-centos52-etercifs-testing2 * [new branch] legacy-centos53-etercifs-testing -> legacy-centos53-etercifs-testing * [new branch] legacy-centos53-etercifs-testing2 -> legacy-centos53-etercifs-testing2 * [new branch] legacy-etercifs-testing -> legacy-etercifs-testing * [new branch] legacy-etercifs-testing2 -> legacy-etercifs-testing2 * [new branch] v2.6.16-etercifs-testing -> v2.6.16-etercifs-testing * [new branch] v2.6.16-etercifs-testing2 -> v2.6.16-etercifs-testing2 * [new branch] v2.6.23-etercifs-testing -> v2.6.23-etercifs-testing * [new branch] v2.6.23-etercifs-testing2 -> v2.6.23-etercifs-testing2 * [new branch] v2.6.24-etercifs-testing -> v2.6.24-etercifs-testing * [new branch] v2.6.24-etercifs-testing2 -> v2.6.24-etercifs-testing2 * [new branch] v2.6.25-etercifs-testing -> v2.6.25-etercifs-testing * [new branch] v2.6.25-etercifs-testing2 -> v2.6.25-etercifs-testing2 * [new branch] v2.6.26-etercifs-testing -> v2.6.26-etercifs-testing * [new branch] v2.6.26-etercifs-testing2 -> v2.6.26-etercifs-testing2 * [new branch] v2.6.27-etercifs-testing -> v2.6.27-etercifs-testing * [new branch] v2.6.27-etercifs-testing2 -> v2.6.27-etercifs-testing2 * [new branch] v2.6.28-etercifs-testing -> v2.6.28-etercifs-testing * [new branch] v2.6.28-etercifs-testing2 -> v2.6.28-etercifs-testing2 * [new branch] v2.6.29-etercifs-testing -> v2.6.29-etercifs-testing * [new branch] v2.6.29-etercifs-testing2 -> v2.6.29-etercifs-testing2 * [new branch] v2.6.29-etercifs-testing3 -> v2.6.29-etercifs-testing3 * [new branch] v2.6.30-etercifs-testing -> v2.6.30-etercifs-testing * [new branch] v2.6.30-etercifs-testing2 -> v2.6.30-etercifs-testing2 * [new branch] v2.6.30-etercifs-testing3 -> v2.6.30-etercifs-testing3 * [new branch] v2.6.31-etercifs-testing -> v2.6.31-etercifs-testing * [new branch] v2.6.31-etercifs-testing2 -> v2.6.31-etercifs-testing2 * [new branch] v2.6.31-etercifs-testing3 -> v2.6.31-etercifs-testing3 testing - это исходный набор исправлений, в который вошли исправления для 2.6.31 -> http://bugs.etersoft.ru/show_bug.cgi?id=4536 testing2 - это упомянутй патч, который пока не вошёл ни в какую сборку etercifs testing3 - это исправление для открытия файлов, при использовании forcemand (портировано пока только для ядер 2.6.30 и 2.6.31) 2piastry: Проверь ветку etersoft-forcemandatory-open (все ветки с патчами ведутся для последнего релиза - сейчас сравнивать можно по тегу v2.6.31) и добавь testing3 для всех других веток, а именно: legacy-centos52-etercifs-testing3 legacy-centos53-etercifs-testing3 legacy-etercifs-testing3 v2.6.16-etercifs-testing3 v2.6.23-etercifs-testing3 v2.6.24-etercifs-testing3 v2.6.25-etercifs-testing3 v2.6.26-etercifs-testing3 v2.6.27-etercifs-testing3 v2.6.28-etercifs-testing3 v2.6.29-etercifs-testing3 Ветки testing3 (которые включают и testing2) можно вливать в etercifs и собирать тестовый etercifs-4.4.1. То, что сейчас лежит в etercifs-4.4.1 я уже не помню...
(In reply to comment #6) > Ветки testing3 (которые включают и testing2) можно > вливать в etercifs и собирать тестовый etercifs-4.4.1. Каким образом это делается? Хотелось бы понять процедуру сборки и повторить по инструкции.
(In reply to comment #7) > (In reply to comment #6) > > Ветки testing3 (которые включают и testing2) можно > > вливать в etercifs и собирать тестовый etercifs-4.4.1. > Каким образом это делается? Хотелось бы > понять процедуру сборки и повторить по > инструкции. > Вопрос ведь в выпуске etercifs. Значит речь можно вести в контексте этого проекта. В нём собраны: - исходники модулей под разные ядра; - скрипты сборки. Какие нужны инструкции чтобы обновить исходники? Ну, желательно каждый модуль менять отдельным коммитом. Список необходимых действий понятен из истории etercifs в git. Нужно попатчить каждую из версий модуля для разных ядер и поднять релиз.
Прокинул все необходимые ветки в ветку 4.4.1: http://git.etersoft.ru/people/piastry/packages/?p=etercifs.git;a=shortlog;h=refs/heads/4.4.1 Можно собирать etercifs!
В данной баге решалась проблема запуска приложений (exec). На сборке etercifs 4.4.1 eter1 и она решена патчем. Вторая проблема решается в http://bugs.etersoft.ru/show_bug.cgi?id=4292 Эту закрываем.
Тестировалась проблема запуска на etercifs 4.4.1 eter1 Воспроизвести не удалось, монтировал с параметром direct.