diff options
Diffstat (limited to 'fs/nfsd/nfs3xdr.c')
-rw-r--r-- | fs/nfsd/nfs3xdr.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c index f16184a39941..edf926e1062f 100644 --- a/fs/nfsd/nfs3xdr.c +++ b/fs/nfsd/nfs3xdr.c | |||
@@ -825,7 +825,6 @@ compose_entry_fh(struct nfsd3_readdirres *cd, struct svc_fh *fhp, | |||
825 | dparent = cd->fh.fh_dentry; | 825 | dparent = cd->fh.fh_dentry; |
826 | exp = cd->fh.fh_export; | 826 | exp = cd->fh.fh_export; |
827 | 827 | ||
828 | fh_init(fhp, NFS3_FHSIZE); | ||
829 | if (isdotent(name, namlen)) { | 828 | if (isdotent(name, namlen)) { |
830 | if (namlen == 2) { | 829 | if (namlen == 2) { |
831 | dchild = dget_parent(dparent); | 830 | dchild = dget_parent(dparent); |
@@ -859,15 +858,17 @@ __be32 *encode_entryplus_baggage(struct nfsd3_readdirres *cd, __be32 *p, const c | |||
859 | struct svc_fh fh; | 858 | struct svc_fh fh; |
860 | int err; | 859 | int err; |
861 | 860 | ||
861 | fh_init(&fh, NFS3_FHSIZE); | ||
862 | err = compose_entry_fh(cd, &fh, name, namlen); | 862 | err = compose_entry_fh(cd, &fh, name, namlen); |
863 | if (err) { | 863 | if (err) { |
864 | *p++ = 0; | 864 | *p++ = 0; |
865 | *p++ = 0; | 865 | *p++ = 0; |
866 | return p; | 866 | goto out; |
867 | } | 867 | } |
868 | p = encode_post_op_attr(cd->rqstp, p, &fh); | 868 | p = encode_post_op_attr(cd->rqstp, p, &fh); |
869 | *p++ = xdr_one; /* yes, a file handle follows */ | 869 | *p++ = xdr_one; /* yes, a file handle follows */ |
870 | p = encode_fh(p, &fh); | 870 | p = encode_fh(p, &fh); |
871 | out: | ||
871 | fh_put(&fh); | 872 | fh_put(&fh); |
872 | return p; | 873 | return p; |
873 | } | 874 | } |