|
@@ -312,8 +312,8 @@ int
|
|
|
fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, struct svc_fh *ref_fh)
|
|
|
{
|
|
|
/* ref_fh is a reference file handle.
|
|
|
- * if it is non-null, then we should compose a filehandle which is
|
|
|
- * of the same version, where possible.
|
|
|
+ * if it is non-null and for the same filesystem, then we should compose
|
|
|
+ * a filehandle which is of the same version, where possible.
|
|
|
* Currently, that means that if ref_fh->fh_handle.fh_version == 0xca
|
|
|
* Then create a 32byte filehandle using nfs_fhbase_old
|
|
|
*
|
|
@@ -332,7 +332,7 @@ fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, st
|
|
|
parent->d_name.name, dentry->d_name.name,
|
|
|
(inode ? inode->i_ino : 0));
|
|
|
|
|
|
- if (ref_fh) {
|
|
|
+ if (ref_fh && ref_fh->fh_export == exp) {
|
|
|
ref_fh_version = ref_fh->fh_handle.fh_version;
|
|
|
if (ref_fh_version == 0xca)
|
|
|
ref_fh_fsid_type = 0;
|