Summary: | pam_mktemp don't wokr if /tmp/.private on reiser4 filesystem. | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | seriv <seriv> |
Component: | pam_mktemp | Assignee: | Dmitry V. Levin <ldv> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P2 | CC: | ldv, placeholder |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
seriv
2005-07-31 20:41:57 MSD
У меня в связи с pam_mktemp возник вопрос: он использует атрибуты для ext2/3, reiserfs и т.п. файловых системах которые поддерживают атрибуты (lsattr,charrt...), но на tmpfs, которая этих атрибутов не поддерживает, pam_mktemp тоже ухитряется нахорошо работать. Поэтому у меня вопрос-предложение: передать этот баг 7520 c reiser4 на pam_mktemp чтобы особый образ, которым она работает с неподдерживающими атрибуты файловыми системами, распространялся и на reiser4. Извиняюсь, но багзилла-демон требует если не могу исправить и отвергнуть как неправильный, то переназначить баг. Похоже со стороны reiser4 его мне не исправить, а апстрим в ближайшее обозримое время этим тоже не будет заниматься. Сергей. Со своей стороны, я тоже не планирую дорабатывать reiserfs4. Вы хотя бы можете выяснить, какой код ошибки возвращает reiserfs4 в ответ на ioctl EXT2_IOC_SETFLAGS? Проверяется следующим образом: strace -e trace=ioctl chattr +a /path/to/file/on/reiserfs4 $ strace -e trace=ioctl chattr +a /home/seriv/.bash_history ioctl(3, EXT2_IOC_GETFLAGS, 0xbfbea92c) = -1 ENOSYS (Function not implemented) chattr: Function not implemented while reading flags on /home/seriv/.bash_history -- Нет там в reiser4 атрибутов. И пока не планируется. Но ведь у tmpfs тоже атрибуты не реализованы: -- $ touch /tmp/.private/seriv/1 $ strace -e trace=ioctl chattr +a /tmp/.private/seriv/1 ioctl(3, EXT2_IOC_GETFLAGS, 0xbfd7e93c) = -1 ENOTTY (Inappropriate ioctl for device) chattr: Inappropriate ioctl for device while reading flags on /tmp/.private/seriv/1 -- И при этом pam_mktemp при /tmp на tmpfs работает! С этого надо было начинать: ENOSYS != ENOTTY. В следующей сборке pam_mktemp, возможно, будет добавлена обработка ENOSYS по аналогии с ENOTTY; я посоветуюсь с автором pam_mktemp. Хотя, конечно, виноват драйвер reiserfs4: он должен возвращать ENOTTY. Так если дело в том, чтобы вернуть ENOTTY вместо ENOSYS, я думаю это дело нехитрое, из трёх мест в коде kernel-feat-fs-reiser4/15_reiser4-only.patch методом чтения и тыка я пойму какое надо заменить и пересоберу kernel-feat-fs-reiser4. Если действительно так правильнее. Сергей. (In reply to comment #5) > С этого надо было начинать: ENOSYS != ENOTTY. > В следующей сборке pam_mktemp, возможно, будет добавлена обработка ENOSYS по > аналогии с ENOTTY; я посоветуюсь с автором pam_mktemp. > Хотя, конечно, виноват драйвер reiserfs4: он должен возвращать ENOTTY. I will take care. Next version of pam_mktemp will handle filesystems which return ENOSYS in response to ioctl requests. Implemented in pam_mktemp-1.0.1 |