nfsd: Fix up the "supattr_exclcreat" attributes
If an NFSv4 client asks us for the supattr_exclcreat, then we must
not return attributes that are unsupported by this minor version.
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Fixes: 75976de655
("NFSD: Return word2 bitmask if setting security..,")
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
f961e3f2ac
commit
b26b78cb72
|
@ -2831,9 +2831,14 @@ out_acl:
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_NFSD_PNFS */
|
#endif /* CONFIG_NFSD_PNFS */
|
||||||
if (bmval2 & FATTR4_WORD2_SUPPATTR_EXCLCREAT) {
|
if (bmval2 & FATTR4_WORD2_SUPPATTR_EXCLCREAT) {
|
||||||
status = nfsd4_encode_bitmap(xdr, NFSD_SUPPATTR_EXCLCREAT_WORD0,
|
u32 supp[3];
|
||||||
NFSD_SUPPATTR_EXCLCREAT_WORD1,
|
|
||||||
NFSD_SUPPATTR_EXCLCREAT_WORD2);
|
memcpy(supp, nfsd_suppattrs[minorversion], sizeof(supp));
|
||||||
|
supp[0] &= NFSD_SUPPATTR_EXCLCREAT_WORD0;
|
||||||
|
supp[1] &= NFSD_SUPPATTR_EXCLCREAT_WORD1;
|
||||||
|
supp[2] &= NFSD_SUPPATTR_EXCLCREAT_WORD2;
|
||||||
|
|
||||||
|
status = nfsd4_encode_bitmap(xdr, supp[0], supp[1], supp[2]);
|
||||||
if (status)
|
if (status)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue