Messages in this thread | | | Date | Wed, 28 Apr 1999 23:48:16 -0400 | From | Brian Gerst <> | Subject | Re: Physical Sectors for a File |
| |
Malcolm Beattie wrote: > > Brian Gerst writes: > > Yash Shitoot wrote: > > > > > > For a driver I am writing, I need to find the physical sectors > > > for a given file. I know the inode number for that file. Any help/ > > > pointers would be appreciated. > > > > Try looking at the source to lilo, that also needs to make a block map > > of where the kernel image sits on the disk. > > I haven't looked at how lilo does it from userland but if he's > writing a kernel driver I'd have thought the easiest way would be > int bmap(struct inode *inode, int block); > which takes an inode and the relative block number within the file > and returns the absolute block number of the block on the underlying > block device. It only works for "ordinary" filesystems that support > the VFS bmap method but that certainly covers things like ext2. > > If you can assume that the block number of the block device is the > "physical" block you're after then you are home free. Otherwise (if > you're worried about bad block remapping, md, nbd or any other weird > block device) then you've got more to do.
Doh, I didn't notice he wanted to do this from inside the kernel. Using bmap should work in this case then.
--
Brian Gerst
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |