mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
EXPORTFS: handle NULL returns from fh_to_dentry()/fh_to_parent()
While440037287c"[PATCH] switch all filesystems over to d_obtain_alias" removed some cases where fh_to_dentry() and fh_to_parent() could return NULL, there are still a few NULL returns left in individual filesystems. Thus it was a mistake for that commit to remove the handling of NULL returns in the callers. Revert those parts of440037287cwhich removed the NULL handling. (We could, alternatively, modify all implementations to return -ESTALE instead of NULL, but that proves to require fixing a number of filesystems, and in some cases it's arguably more natural to return NULL.) Thanks to David for original patch and Linus, Christoph, and Hugh for review. Signed-off-by: J. Bruce Fields <[email protected]> Cc: David Howells <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Hugh Dickins <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
218d11a8b0
commit
a4f4d6df53
1 changed files with 4 additions and 0 deletions
|
|
@ -367,6 +367,8 @@ struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
|
|||
* Try to get any dentry for the given file handle from the filesystem.
|
||||
*/
|
||||
result = nop->fh_to_dentry(mnt->mnt_sb, fid, fh_len, fileid_type);
|
||||
if (!result)
|
||||
result = ERR_PTR(-ESTALE);
|
||||
if (IS_ERR(result))
|
||||
return result;
|
||||
|
||||
|
|
@ -420,6 +422,8 @@ struct dentry *exportfs_decode_fh(struct vfsmount *mnt, struct fid *fid,
|
|||
|
||||
target_dir = nop->fh_to_parent(mnt->mnt_sb, fid,
|
||||
fh_len, fileid_type);
|
||||
if (!target_dir)
|
||||
goto err_result;
|
||||
err = PTR_ERR(target_dir);
|
||||
if (IS_ERR(target_dir))
|
||||
goto err_result;
|
||||
|
|
|
|||
Loading…
Reference in a new issue