hi, in kernel space ,if i get the i_ino(inode mumber ) of a file, and next how could i get the block number of this file? in VFS layer the inode struct haven't i_block[] array to point to the blocks. but in ext3_inode struct, it has. what's the relationship between the VFS inode and ext3_inode? how do i get the block number of a file ? the path is as follow: filp_open("/bin/ls",O_RDONLY,0)---- -->struct file *------->struct dentry *f_dentry----->struct inode *d_inode-------->struct inode{}-------------> ???------------>struct ext3_inode{}---------->__le32 i_block[EXT2_N_BLOCKS]; from VFS inode to ext3_inode , i don't know how to transfer?? Thanks! -- Best regards, ??? ???????????????? Sucan Computer Department,Beijing Institute of Technology,China -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://listman.redhat.com/archives/ext3-users/attachments/20090602/69761cdb/attachment.htm>
On Tue, Jun 02, 2009 at 04:56:33PM +0800, Zhang Shukun wrote:> hi, > > in kernel space ,if i get the i_ino(inode mumber ) of a file, and next how > could i get the block number of this file? in VFS layer the inode struct > haven't i_block[] array to point to the blocks. but in ext3_inode struct, it > has. what's the relationship between the VFS inode and ext3_inode? > > > how do i get the block number of a file ? the path is as follow: > > filp_open("/bin/ls",O_RDONLY,0)---- -->struct file *------->struct dentry > *f_dentry----->struct inode *d_inode-------->struct inode{}-------------> > ???------------>struct ext3_inode{}---------->__le32 > i_block[EXT2_N_BLOCKS]; > > from VFS inode to ext3_inode , i don't know how to transfer?? Thanks!What are you trying to do? For userspace programs, just use the FIBMAP (or FIEMAP) ioctl's. - Ted