Summary: | Не создаются файлы при использовании ядра 2.6.39-std-def-alt2.1 | ||
---|---|---|---|
Product: | CIFS@Etersoft | Reporter: | Александр Морозов <amorozov> |
Component: | блокировки файлов и доступ | Assignee: | Pavel Shilovsky <piastry> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | P4 | CC: | kondratyuk, lav, sin, sonner |
Version: | не указана | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 3043, 3044 | ||
Deadline: | 2011-09-05 |
Description
Александр Морозов
2011-07-25 21:31:24 MSK
Тест: cifs/lincifs4.c в репозитории git.office:/projects/wine/wine-etersoft-devel.git Проблема в следующем: в ядре 2.6.39 появился новый флаг, актуальный при открытии файла: +#ifndef O_PATH +#define O_PATH 010000000 +#endif + Данный флаг используется для того, чтобы получить дескриптор для чтения атрибутов файла и любые операции вроде read/write/lseek/ioct выдают на нём ошибку -EBADF. Соответственно, ((~0 & 7) << 21) его включает и получается, не то, что требуется. В данной ситуации видится только один выход - подвинуть наши флаги. Причём, лучше убрать их в самый конец, чтобы подольше избежать подобных ситуаций. Поэтому, данный вызов падает не только на CIFS, но и на всех ядерных файловых системах, так как обработка нового флага происходит в VFS. Обсудили с amorozov@ ситуацию. Надо будет согласовать изменения в CIFS и WINE, чтобы в последнем можно было различать какое смещение использовать. Написал письмо в devel@. Ответил в devel@. Поправил сдвиг с 21 на 28 во всех ветках в репозитории cifs-2.6. Обновил ветку master в репозитории etercifs. Собрал etericifs-5.0.0 с необходимыми исправлениями (сдвиг на 28). amorozov@, надо поправить соответствующий кода в wine. Решена. Добавил поддержку etercifs-5.0.0 в wine. Чтобы работало, надо собрать новую закрытую часть. Теперь работает. Ядро 2.6.39-std-def-alt2.1, etercifs-5.0.0-alt1. Монтирование производилось командой etermount //192.168.4.181/share /mnt/winxp 1.0.12-eter13.2/26 |