[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <35a82d00609221820y4e3a4667yfa4f8f9c3570af45@mail.gmail.com>
Date: Fri, 22 Sep 2006 18:20:55 -0700
From: "Scott Baker" <smbaker@...il.com>
To: linux-kernel@...r.kernel.org
Cc: "Al Viro" <viro@....linux.org.uk>
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists