4 struct super_block
*i_sb
;
13 unsigned char s_blocksize_bits
;
18 isofs_bread(unsigned int block
)
26 do_isofs_readdir(struct inode
*inode
, struct file
*filp
)
28 int bufsize
= inode
->i_sb
->s_blocksize
;
29 unsigned char bufbits
= inode
->i_sb
->s_blocksize_bits
;
30 unsigned int block
, offset
;
34 if (filp
->f_pos
>= inode
->i_size
)
37 offset
= filp
->f_pos
& (bufsize
- 1);
38 block
= filp
->f_pos
>> bufbits
;
39 hs
= inode
->i_sb
->s_hs
;
41 while (filp
->f_pos
< inode
->i_size
) {
43 bh
= isofs_bread(block
);
45 hs
+= block
<< bufbits
;
50 if (offset
>= bufsize
)
51 offset
&= bufsize
- 1;
66 main(int argc
, char **argv
)
69 s
.s_blocksize_bits
= 9;
74 do_isofs_readdir(&i
,&f
);