Latreyte David wrote:
Bonsoir � tous,
juste une question � propos de montages loopback. J'ai r�alis� un certain
nombre d'images de cd sur mon serveur afin de pouvoir les partager sur le
r�seau. Pour les rendre accessibles, j'utilise une commande qui ressemble � :
mount -o loop -t iso9660 .......
j'obtiens bien ce que je d�sire si ce n'est que c'est accompagn� du message :
Invalid session number or type of track
Ne l'ayant pas tout d'abord bien lu, j'ai cru � une restriction du nombre de
loop poosibles (seulement loop0 � loop8 dans /dev/) mais apr�s recherche, je
suis parvenu � monter ce nombre � 16 (bien que je n'ai que 6 CD partag�s) et
j'obtiens toujours le m�me message.
Quelqu'un conna�t-il la signification du message ?
(Kernel 2.4.12)
En fait le seul moyen que je connaisse pour vraiment savoir d'o� �a
vient est de regarder le source. Rien dans
/usr/src/linux/drivers/block/loop.c. C'est donc que le pb vient du
support du FS iso9660. Dans /usr/src/linux/fs/isofs/inode.c, on trouve
le message en question � la ligne 436. Si je comprends bien cette partie
du code, il s'agit de la d�tection des CD-Roms multi-sessions comme
l'indique le message "Session %d start ...". Il me semble cependant
bizarre qu'on affiche un message d'erreur quand on d�tecte une session.
Donc pour moi c'est un (petit) bug : il manque un else { ... } autour du
2�me printk comme ceci :
if (!i) {
...
}
else
{
printk(KERN_ERR "Invalid session number or type of
track\n");
}
Extrait de /usr/src/linux-2.4.12/fs/isofs/inode.c (l 423 � 437)
[...]
if(session >= 0 && session <= 99) {
struct cdrom_tocentry Te;
Te.cdte_track=session;
Te.cdte_format=CDROM_LBA;
i = ioctl_by_bdev(bdev, CDROMREADTOCENTRY, (unsigned long)
&Te);
if (!i) {
printk(KERN_DEBUG "Session %d start %d type %d\n",
session, Te.cdte_addr.lba,
Te.cdte_ctrl&CDROM_DATA_TRACK);
if ((Te.cdte_ctrl&CDROM_DATA_TRACK) == 4)
return Te.cdte_addr.lba;
}
printk(KERN_ERR "Invalid session number or type of
track\n");
}
[...]
Je sais que �a fait un peu masquage du pb, mais le plus important est la
compr�hension du pb (que j'esp�re correct :-)).
Fred