> > Hi, > > Sorry for long delay. > > > +static int fat_get_block_bmap(struct inode *inode, sector_t iblock, > > + struct buffer_head *bh_result, int create) > > +{ > > + struct super_block *sb = inode->i_sb; > > + unsigned long max_blocks = bh_result->b_size >> inode->i_blkbits; > > + int err; > > + sector_t bmap, last_block; > > + unsigned long mapped_blocks; > > + > > + BUG_ON(create != 0); > > + > > + last_block = inode->i_blocks >> (sb->s_blocksize_bits - 9); > > + > > + if (iblock >= last_block) > > + return 0; > > + > > + err = fat_get_mapped_cluster(inode, iblock, last_block, &mapped_blocks, > > + &bmap); > > + if (err) > > + return err; > Hi OGAWA. > Probably, we are missing rootdir check here? If it is fat12/fat16, > rootdir has to treat as special, because it doesn't have cluster chain. > > So, how about to pass flags to fat_bmap()? For example, > > /* Check EOF for excluding bmap() ioctl path */ > static int is_exceed_eof() > { > ... > } > > fat_bmap(..., from_bmap) > { > ... > > if (!from_bmap && is_exceed_eof(inode, sector, create)) > return 0; > > ... > } > > or such. Right, root dir check is missing, we need to put it here. And I will change it as you suggest. Thanks for your review:) > > Thanks. > -- > OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html