Loading fs/nfsd/nfs4xdr.c +11 −5 Original line number Diff line number Diff line Loading @@ -3233,6 +3233,14 @@ static __be32 nfsd4_encode_fattr4_space_avail(struct xdr_stream *xdr, return nfsd4_encode_uint64_t(xdr, avail); } static __be32 nfsd4_encode_fattr4_space_free(struct xdr_stream *xdr, const struct nfsd4_fattr_args *args) { u64 free = (u64)args->statfs.f_bfree * (u64)args->statfs.f_bsize; return nfsd4_encode_uint64_t(xdr, free); } /* * Note: @fhp can be NULL; in this case, we might have to compose the filehandle * ourselves. Loading Loading @@ -3547,11 +3555,9 @@ nfsd4_encode_fattr(struct xdr_stream *xdr, struct svc_fh *fhp, goto out; } if (bmval1 & FATTR4_WORD1_SPACE_FREE) { p = xdr_reserve_space(xdr, 8); if (!p) goto out_resource; dummy64 = (u64)args.statfs.f_bfree * (u64)args.statfs.f_bsize; p = xdr_encode_hyper(p, dummy64); status = nfsd4_encode_fattr4_space_free(xdr, &args); if (status != nfs_ok) goto out; } if (bmval1 & FATTR4_WORD1_SPACE_TOTAL) { p = xdr_reserve_space(xdr, 8); Loading Loading
fs/nfsd/nfs4xdr.c +11 −5 Original line number Diff line number Diff line Loading @@ -3233,6 +3233,14 @@ static __be32 nfsd4_encode_fattr4_space_avail(struct xdr_stream *xdr, return nfsd4_encode_uint64_t(xdr, avail); } static __be32 nfsd4_encode_fattr4_space_free(struct xdr_stream *xdr, const struct nfsd4_fattr_args *args) { u64 free = (u64)args->statfs.f_bfree * (u64)args->statfs.f_bsize; return nfsd4_encode_uint64_t(xdr, free); } /* * Note: @fhp can be NULL; in this case, we might have to compose the filehandle * ourselves. Loading Loading @@ -3547,11 +3555,9 @@ nfsd4_encode_fattr(struct xdr_stream *xdr, struct svc_fh *fhp, goto out; } if (bmval1 & FATTR4_WORD1_SPACE_FREE) { p = xdr_reserve_space(xdr, 8); if (!p) goto out_resource; dummy64 = (u64)args.statfs.f_bfree * (u64)args.statfs.f_bsize; p = xdr_encode_hyper(p, dummy64); status = nfsd4_encode_fattr4_space_free(xdr, &args); if (status != nfs_ok) goto out; } if (bmval1 & FATTR4_WORD1_SPACE_TOTAL) { p = xdr_reserve_space(xdr, 8); Loading