befs_lookup(): use d_splice_alias()
Subsystems (2)
Al Viro
maintainerRFC PATCH 1/1 befs_lookup(): use d_splice_alias()
RTFS(Documentation/filesystems/nfs/Exporting) if you try to make something exportable.
Fixes ac632f5b6301 "befs: add NFS export support"
Signed-off-by Al Viro <[email protected]>
fs/befs/linuxvfs.c +5 -12
@@ -198,23 +198,16 @@ befs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)if (ret ==BEFS_BT_NOT_FOUND ) {befs_debug (sb,"<--- %s %pd not found" , __func__, dentry); -d_add (dentry,NULL ); -return ERR_PTR (-ENOENT ); - + inode =NULL ; }else if (ret !=BEFS_OK || offset ==0 ) {befs_error (sb,"<--- %s Error" , __func__); -return ERR_PTR (-ENODATA ); + inode =ERR_PTR (-ENODATA ); + }else { + inode =befs_iget (dir->i_sb, (ino_t ) offset); } - - inode =befs_iget (dir->i_sb, (ino_t ) offset); -if (IS_ERR (inode)) -return ERR_CAST (inode); - -d_add (dentry, inode); -befs_debug (sb,"<--- %s" , __func__); -return NULL ; +return d_splice_alias (inode, dentry); } static int