Bug 4530

Summary: Как узнать, с какими параметрами смонтирован cifs-ресурс?
Product: CIFS@Etersoft Reporter: Vitaly Lipatov <lav>
Component: прочееAssignee: Pavel Shilovsky <piastry>
Status: CLOSED FIXED QA Contact:
Severity: minor    
Priority: P3 CC: baraka, lav, shpigor, sin, yurifil
Version: не указана   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 4701    
Bug Blocks: 3043, 4284    

Description Vitaly Lipatov 2009-11-21 17:40:22 MSK
После монтирования в выводе # mount ( то есть в /proc/mounts) не видно, с какими параметрами был смонтирован ресурс.
Если возможно, надо чтобы etercifs выводил туда параметры (кроме пароля?), если нет - реализовать другой способ узнавания. Иначе поддержка и диагностика сильно хромает.
Comment 1 Денис Баранов 2009-11-22 14:26:30 MSK
Это возможно и сколько требуется времени на реализацию?
Comment 2 Pavel Shilovsky 2009-11-23 13:12:04 MSK
А чем не устраивает существующий вариант?

[piastry@keepcoding ~]$ sudo mount -t cifs //localhost/public ~/m -ouser=piastry,uid=piastry,gid=piastry

[piastry@keepcoding ~]$ cat /proc/mounts | grep cifs
//localhost/public /home/piastry/m cifs rw,mand,relatime,unc=\\localhost\public,username=piastry,addr=0000:0000:0000:0000:0000:0000:0000:0001,uid=500,gid=501,posixpaths,acl,rsize=16384,wsize=57344 0 0

Выводятся почти все параметры, кроме интересного нам forcemand. Это решается следующий патчем:

diff -uNr cifs-2.6/cifsfs.c cifs-2.6.new/cifsfs.c
--- cifs-2.6/cifsfs.c   2009-11-14 22:29:17.000000000 +0300
+++ cifs-2.6.new/cifsfs.c       2009-11-23 13:05:47.000000000 +0300
@@ -410,6 +410,8 @@
                        seq_printf(s, ",cifsacl");
                if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM)
                        seq_printf(s, ",dynperm");
+               if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NOPOSIXBRL)
+                       seq_printf(s, ",forcemand");
                if (m->mnt_sb->s_flags & MS_POSIXACL)
                        seq_printf(s, ",acl");
Comment 3 Vitaly Lipatov 2009-11-27 01:22:17 MSK
(In reply to comment #2)
...
> Выводятся почти все параметры, кроме
> интересного нам forcemand. Это решается
> следующий патчем:
Не выводятся forcemand,direct,unix.
Вообще желательно выводить все параметры, иначе диагностика невозможна.

Я хотел обсудить, как насчёт того, чтобы ввести параметр wine,
который будет включать все необходимые нам параметры, чтобы не заставлять людей
запоминать, и менять с каждым релизом параметры.
Comment 4 Pavel Shilovsky 2009-11-28 23:40:01 MSK
Параметр direct выводится под названием directio. С параметром unix дела интереснее обстоят, так как работа по POSIX или же нет зависит не только от клиента, но и от возможностей сервера. Потому предлагаю такой вариант:

diff -uNr cifs-2.6/cifsfs.c cifs-2.6.new/cifsfs.c
--- cifs-2.6/cifsfs.c 2009-11-28 22:52:18.000000000 +0300
+++ cifs-2.6.new/cifsfs.c    2009-11-28 23:35:36.000000000 +0300
@@ -387,6 +387,8 @@
                                seq_printf(s, ",nocase");
                        if (tcon->retry)
                                seq_printf(s, ",hard");
+                       if (tcon->unix_ext)
+                               seq_printf(s, ",unix");
                }
                if (cifs_sb->prepath)
                        seq_printf(s, ",prepath=%s", cifs_sb->prepath);
Comment 5 Vitaly Lipatov 2009-12-23 12:02:09 MSK
(In reply to comment #4)
> Параметр direct выводится под названием directio.
> С параметром unix дела интереснее обстоят,
> так как работа по POSIX или же нет зависит не
> только от клиента, но и от возможностей
> сервера. Потому предлагаю такой вариант:
А откуда эта идеология показывать не параметры монтирования, а режим работы модуля? Может быть она не верна, и лучше будет показывать реальную строку монтирования? Может быть, только в том случае, если смонтировано с параметром wine (см. багу 4701).
Comment 6 Pavel Shilovsky 2010-01-15 00:35:28 MSK
В данном случае режим работы модуля совпадает со строкой монтирования, так что разницы в нет. По поводу параметра 'wine' неясно, что имеется ввиду: он будет преднастраиваться в каком-то конфигурационном файле(или ещё где) или это будет изначально известный набор настроек?
Comment 7 Pavel Shilovsky 2010-03-02 17:39:15 MSK
Решено использовать /proc/mounts .
Comment 8 Денис Баранов 2010-03-04 19:51:23 MSK
(In reply to comment #7)
> Решено использовать /proc/mounts .
> 
Да, все параметры можно увидеть и понять как смонтировано.