knfsd: exportfs: remove iget abuse
authorChristoph Hellwig <hch@infradead.org>
Tue, 17 Jul 2007 11:04:29 +0000 (04:04 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 17 Jul 2007 17:23:06 +0000 (10:23 -0700)
commit5ca29607331fe37980dc3b488793ef8b1409b722
treecf4e5ad786aeebc8d82d1b867ab3d91d0cb4b824
parenta569425512253992cc64ebf8b6d00a62f986db3e
knfsd: exportfs: remove iget abuse

When the exportfs interface was added the expectation was that filesystems
provide an operation to convert from a file handle to an inode/dentry, but it
kept a backwards compat option that still calls into iget.

Calling into iget from non-filesystem code is very bad, because it gives too
little information to filesystem, and simply crashes if the filesystem doesn't
implement the ->read_inode routine.

Fortunately there are only two filesystems left using this fallback: efs and
jfs.  This patch moves a copy of export_iget to each of those to implement the
get_dentry method.

While this is a temporary increase of lines of code in the kernel it allows
for a much cleaner interface and important code restructuring in later
patches.

[akpm@linux-foundation.org: add jfs_get_inode_flags() declaration]
Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/efs/namei.c
fs/efs/super.c
fs/exportfs/expfs.c
fs/jfs/jfs_inode.h
fs/jfs/namei.c
fs/jfs/super.c
include/linux/efs_fs.h