Bug 7520

Summary: pam_mktemp don't wokr if /tmp/.private on reiser4 filesystem.
Product: Sisyphus Reporter: seriv <seriv>
Component: pam_mktempAssignee: 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 использует attributes. 
reiser4 сейчас не поддерживает атрибуты.
Пока предлагается, если собираетесь пользоваться pam_mktemp или как то иначе
атрибутами файлов, использовать для этой директории другие файловые системы.
Comment 1 seriv 2005-08-01 16:03:34 MSD
У меня в связи с pam_mktemp возник вопрос: он использует атрибуты для ext2/3,
reiserfs и т.п. файловых системах которые поддерживают атрибуты
(lsattr,charrt...), но на tmpfs, которая этих атрибутов не поддерживает,
pam_mktemp тоже ухитряется нахорошо работать. 
Поэтому у меня вопрос-предложение: передать этот баг 7520 c reiser4 на
pam_mktemp чтобы особый образ, которым она работает с неподдерживающими атрибуты
файловыми системами, распространялся и на reiser4.
Comment 2 seriv 2005-08-10 04:16:11 MSD
Извиняюсь, но багзилла-демон требует если не могу исправить и отвергнуть как
неправильный, то переназначить баг. Похоже со стороны reiser4 его мне не
исправить, а апстрим в ближайшее обозримое время этим тоже не будет заниматься.
   Сергей.
Comment 3 Dmitry V. Levin 2005-08-10 04:30:14 MSD
Со своей стороны, я тоже не планирую дорабатывать reiserfs4.

Вы хотя бы можете выяснить, какой код ошибки возвращает reiserfs4 в ответ на
ioctl EXT2_IOC_SETFLAGS?

Проверяется следующим образом:
strace -e trace=ioctl chattr +a /path/to/file/on/reiserfs4
Comment 4 seriv 2005-08-10 04:39:30 MSD
$ 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 работает!
Comment 5 Dmitry V. Levin 2005-08-10 04:57:42 MSD
С этого надо было начинать: ENOSYS != ENOTTY.
В следующей сборке pam_mktemp, возможно, будет добавлена обработка ENOSYS по
аналогии с ENOTTY; я посоветуюсь с автором pam_mktemp.
Хотя, конечно, виноват драйвер reiserfs4: он должен возвращать ENOTTY.
Comment 6 seriv 2005-08-10 19:17:31 MSD
Так если дело в том, чтобы вернуть 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.  
  
  
Comment 7 Dmitry V. Levin 2005-08-11 01:19:10 MSD
I will take care.
Comment 8 Dmitry V. Levin 2005-08-11 01:23:11 MSD
Next version of pam_mktemp will handle filesystems which return ENOSYS in
response to ioctl requests.
Comment 9 Dmitry V. Levin 2005-08-11 02:07:08 MSD
Implemented in pam_mktemp-1.0.1