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
tests.tar.gz
Description: GNU Zip compressed data

