Hello Olya,

Wednesday, August 10, 2005, 10:12:40 PM, you wrote:

[]
OB> Повторю суть проблемы, чтобы устранить возможные недоразумения.
OB> При монтировании isofs с опцией session игнорируются (не выполняются и,
OB> похоже, не разбираются вовсе) все опции, которые в списке следуют за
OB> ней. Сама session при этом выполняется правильно.
OB> То же самое для iocharset.
OB> С sbsector проблем нет.
Посмотрев на функцию разбора параметров и немного поэкпериментировав,
выяснил, что проблему можно решить двумя способами, с игнорированием
неправильных параметров или выходом после неправильного параметра

простой патч вот:
--- ./inode-old.c   2005-05-19 13:29:39.000000000 +0300
+++ ./inode-new.c  2005-08-11 11:55:12.000000000 +0300
@@ -340,13 +340,13 @@
                        else if (!strcmp(value,"acorn")) popt->map = 'a';
                        else return 0;
                }
-               if (!strcmp(this_char,"session") && value) {
+               else if (!strcmp(this_char,"session") && value) {
                        char * vpnt = value;
                        unsigned int ivalue = simple_strtoul(vpnt, &vpnt, 0);
                        if(ivalue < 0 || ivalue >99) return 0;
                        popt->session=ivalue+1;
                }
-               if (!strcmp(this_char,"sbsector") && value) {
+               else if (!strcmp(this_char,"sbsector") && value) {
                        char * vpnt = value;
                        unsigned int ivalue = simple_strtoul(vpnt, &vpnt, 0);
                        if(ivalue < 0 || ivalue >660*512) return 0;


OB> (Похожим образом mount молча игнорирует остаток опций, если встретилась
OB> одна неправильная. Это, наверное, считается фичей, хоть и очень сбивает
OB> с толку, но тут-то опция правильная и сама по себе вполне работает.)
Видимо код разбирающий параметры аналогичный :(

Патчи для версии ядра 2.4.27-10 и небольшая тестовая программка с
помощью которой можно посмотреть как разбираются параметры (в
командной строке передается строка параметров которая идет после -o),
в аттаче, если интересно.


-- 
Best regards,
 Alexander

Attachment: tests.tar.gz
Description: GNU Zip compressed data

Ответить