Make fh_to_dentry() and fh_to_parent() operations return -ESTALE rather than a negative dentry if the file handle type is unrecognised. Signed-off-by: David Howells <dhowells@xxxxxxxxxx> --- fs/libfs.c | 4 ++++ fs/xfs/linux-2.6/xfs_export.c | 4 ++++ 2 files changed, 8 insertions(+), 0 deletions(-) diff --git a/fs/libfs.c b/fs/libfs.c index 4fe5b5b..47952f2 100644 --- a/fs/libfs.c +++ b/fs/libfs.c @@ -758,6 +758,8 @@ struct dentry *generic_fh_to_dentry(struct super_block *sb, struct fid *fid, case FILEID_INO32_GEN_PARENT: inode = get_inode(sb, fid->i32.ino, fid->i32.gen); break; + default: + return ERR_PTR(-ESTALE); } return d_obtain_alias(inode); @@ -791,6 +793,8 @@ struct dentry *generic_fh_to_parent(struct super_block *sb, struct fid *fid, inode = get_inode(sb, fid->i32.parent_ino, (fh_len > 3 ? fid->i32.parent_gen : 0)); break; + default: + return ERR_PTR(-ESTALE); } return d_obtain_alias(inode); diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c index f9a51c4..7a4c75f 100644 --- a/fs/xfs/linux-2.6/xfs_export.c +++ b/fs/xfs/linux-2.6/xfs_export.c @@ -161,6 +161,8 @@ xfs_fs_fh_to_dentry(struct super_block *sb, struct fid *fid, case FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG: inode = xfs_nfs_get_inode(sb, fid64->ino, fid64->gen); break; + default: + return ERR_PTR(-ESTALE); } return d_obtain_alias(inode); @@ -182,6 +184,8 @@ xfs_fs_fh_to_parent(struct super_block *sb, struct fid *fid, inode = xfs_nfs_get_inode(sb, fid64->parent_ino, fid64->parent_gen); break; + default: + return ERR_PTR(-ESTALE); } return d_obtain_alias(inode); -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html