[pso] Tema4 Linux super_block

Andrei Costin pso@cursuri.cs.pub.ro
Mon, 8 Aug 2005 08:09:38 -0700 (PDT)


--0-1110906433-1123513778=:70525
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

Deci:
static struct super_block * pitix_get_sb(struct file_system_type *fs_type, int flags, const char *devname, void *data)
{
 return get_sb_single(fs_type, flags, data, &pitix_fill_sb);
}
 aici devname = "/dev/loopX", unde X incepe de la 0 si se incrementeaza in cazul in care a ramas agatat pitix.ko si vreau sa mai incarc odata pitix_again.ko
 
ciudat este ca flags ajunge la pitix_get_sb setat pe 0, cu toate ca fs_type->fs_flags are setat FS_REQUIRES_DEV la declaratie.
 
in pitix_fill_sb se ajunge cu sb->s_dev valoarea 10, pentru care __bdevname(sb->s_dev, name_buf) intoarce stringul "unknown-block(0, 10)"
 
So, de ce sb->s_bdev este NULL :((((((((((((((((( ?
 
PS: loop.ko este compilat, incarcat, etc.
 
Mersi anticipat.

Mugurel Ionut Andreica <mugurel_ionut@yahoo.com> wrote:
> Salut.
> 
> Am urmatoarea problema. Am functia pitix_fill_super
> in care vreau sa completez super_block *sb.
> 
> Initial vreau sa citesc superblocul de pe disc cu
> urmatorul apel:
> bh = __bread(sb->s_bdev, 4096, 0); // superblocul pe
> disc are 4096 octeti, si e primul bloc.
> 
> Problema e ca *sb ajunge in fill_super cu sb->s_bdev
> == NULL.
> 
> Am incercat sa fac sb->s_bdev = bdget(sb->);, care
> returna un pointer valid, dar orice access la acesta
> crash-a la fel.
> 
> Vreo sugestie pls?

Presupun ca ai setat fs_flags din file_system_type
la FS_REQUIRES_DEV , nu ?
Altceva nu imi trece prin minte..


__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
_______________________________________________
pso mailing list
pso@cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
--0-1110906433-1123513778=:70525
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

<DIV>Deci:</DIV>
<DIV>static struct super_block * pitix_get_sb(struct file_system_type *fs_type, int flags, const char *devname, void *data)<BR>{<BR>&nbsp;return get_sb_single(fs_type, flags, data, &amp;pitix_fill_sb);<BR>}<BR>&nbsp;aici devname = "/dev/loopX", unde X incepe de la 0 si se incrementeaza in cazul in care a ramas agatat pitix.ko si vreau sa mai incarc odata pitix_again.ko</DIV>
<DIV>&nbsp;</DIV>
<DIV>ciudat este ca flags ajunge la pitix_get_sb setat pe 0, cu toate ca fs_type-&gt;fs_flags are setat FS_REQUIRES_DEV la declaratie.</DIV>
<DIV>&nbsp;</DIV>
<DIV>in pitix_fill_sb se ajunge cu sb-&gt;s_dev valoarea 10, pentru care __bdevname(sb-&gt;s_dev, name_buf) intoarce stringul "unknown-block(0, 10)"</DIV>
<DIV>&nbsp;</DIV>
<DIV>So, de ce sb-&gt;s_bdev este NULL :((((((((((((((((( ?</DIV>
<DIV>&nbsp;</DIV>
<DIV>PS: loop.ko este compilat, incarcat, etc.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Mersi anticipat.</DIV>
<DIV><BR><B><I>Mugurel Ionut Andreica &lt;mugurel_ionut@yahoo.com&gt;</I></B> wrote:</DIV>
<BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">&gt; Salut.<BR>&gt; <BR>&gt; Am urmatoarea problema. Am functia pitix_fill_super<BR>&gt; in care vreau sa completez super_block *sb.<BR>&gt; <BR>&gt; Initial vreau sa citesc superblocul de pe disc cu<BR>&gt; urmatorul apel:<BR>&gt; bh = __bread(sb-&gt;s_bdev, 4096, 0); // superblocul pe<BR>&gt; disc are 4096 octeti, si e primul bloc.<BR>&gt; <BR>&gt; Problema e ca *sb ajunge in fill_super cu sb-&gt;s_bdev<BR>&gt; == NULL.<BR>&gt; <BR>&gt; Am incercat sa fac sb-&gt;s_bdev = bdget(sb-&gt;);, care<BR>&gt; returna un pointer valid, dar orice access la acesta<BR>&gt; crash-a la fel.<BR>&gt; <BR>&gt; Vreo sugestie pls?<BR><BR>Presupun ca ai setat fs_flags din file_system_type<BR>la FS_REQUIRES_DEV , nu ?<BR>Altceva nu imi trece prin minte..<BR><BR><BR>__________________________________________________<BR>Do You Yahoo!?<BR>Tired of spam? Yahoo! Mail has the best spam protection around
 <BR>http://mail.yahoo.com <BR>_______________________________________________<BR>pso mailing list<BR>pso@cursuri.cs.pub.ro<BR>http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso<BR></BLOCKQUOTE><BR><BR><p>__________________________________________________<br>Do You Yahoo!?<br>Tired of spam?  Yahoo! Mail has the best spam protection around <br>http://mail.yahoo.com 
--0-1110906433-1123513778=:70525--