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);