Messages in this thread | | | Date | Fri, 22 Sep 2006 18:20:55 -0700 | From | "Scott Baker" <> | Subject | Re: fault when using iget() on XFS file system (2.6.9) |
| |
> Explain why you think you need iget(). It's almost certainly a Bad Idea(tm) - > code outside of filesystem has no business calling it.
Hello Al,
Thanks for the reply. I'm working on a file system layering module. Without going into a whole lot of detail, it needs to sit on top of a lower file system (such as ext3 or xfs), and presents itself as a file system to other layers, such as usermode and the kernel nfs server.
The kernel nfs server uses the get_object export_operation to map a file handle (which in our case is identical an inode number) into a denty. Thus, the kernel nfsd presents my layer with an inode number, which I must map into a dentry. I do this by calling iget() on the lower file system (ext3, xfs) to get the inode, then work from there to get all of the dentrys stitched together.
Thus, I could make everything work if I had a general-purpose mechanism for querying the lower file system (xfs, ext3) with an inode number to get an inode or dentry. I thought iget() was my answer, but it doesn't work in the general case for xfs.
Scott - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |