[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Глюки при монтировании cdrom в 2.4



Olya Briginets <bolya@ukrpost.net> wrote:
> Привет, Andrey!

> On Wed, 10 Aug 2005 16:48:10 +0400, Andrey Melnikoff wrote:
> > Olya Briginets <bolya@ukrpost.net> wrote:
> >> Привет!
> >
> >> Кто-нибудь разбирался с драйвером isofs (ядро 2.4.27)?
> >> По непонятной причине при использовании некоторых опций монтировния  
> >> полностью игнорируются все следующие опции. 
> >> Так себя ведут, например, опции session и iocharset.
> >> То есть, если сказать:
> >
> >>  mount /dev/cdrom /mnt/tmp -o uid=1000,session=1,gid=1000
> >
> >> то uid и session выполнятся, а gid -- нет.
> >> (Хотя похожая на session опция sbsector работает нормально.)
> >
> > Confirm. Бага. Патчик из двух строчек уехал в lkml, Tosatti и тебе.
> > Проявляетсмя только при сборке более новыми компиляторами (gcc-3.x).

> Вот кусок твоего патча:
> ------------------------------------------------------------------------

>                 if (!strcmp(this_char,"session") && value) {
>                         char * vpnt = value;
> -                       unsigned int ivalue = simple_strtoul(vpnt, &vpnt, 0);
> +                       int ivalue = simple_strtoul(vpnt, &vpnt, 0);
>                         if(ivalue < 0 || ivalue >99) return 0;
>                         popt->session=ivalue+1;
>                 }

> ------------------------------------------------------------------------

> Похоже, это не то. Я эту оптимизацию тоже заметила, но думаю, что она
> правильная, да и притом simple_strtoul возвращает именно unsigned int.
unsigned int нельзя сравнивать на < 0. gcc этот шмат выкидывает.

> Касательно версии компилятора: у меня cat /proc/version говорит
> Linux version 2.4.27 (root@diskland) (gcc version 3.3.5 (Debian 1:3.3.5-8)) #1 Втр Тра 17 23:23:34 EEST 2005

> но та же проблема проявляется и в Knoppix, где
> Linux version 2.4.27 (root@Koffer) (gcc version 2.95.4 20011002 (Debian prerelease)) #2 SMP Mo Aug 9 00:39:37 CEST 2004

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

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



Reply to: