nfsd: SUPPATTR_EXCLCREAT must be encoded before SECURITY_LABEL.
The encode order should be as the bitmask defined order. Signed-off-by: Kinglong Mee <kinglongmee@gmail.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
6896f15aab
commit
7d580722c9
1 changed files with 7 additions and 6 deletions
|
@ -2735,12 +2735,6 @@ out_acl:
|
|||
*p++ = cpu_to_be32(stat.blksize);
|
||||
}
|
||||
#endif /* CONFIG_NFSD_PNFS */
|
||||
if (bmval2 & FATTR4_WORD2_SECURITY_LABEL) {
|
||||
status = nfsd4_encode_security_label(xdr, rqstp, context,
|
||||
contextlen);
|
||||
if (status)
|
||||
goto out;
|
||||
}
|
||||
if (bmval2 & FATTR4_WORD2_SUPPATTR_EXCLCREAT) {
|
||||
p = xdr_reserve_space(xdr, 16);
|
||||
if (!p)
|
||||
|
@ -2751,6 +2745,13 @@ out_acl:
|
|||
*p++ = cpu_to_be32(NFSD_SUPPATTR_EXCLCREAT_WORD2);
|
||||
}
|
||||
|
||||
if (bmval2 & FATTR4_WORD2_SECURITY_LABEL) {
|
||||
status = nfsd4_encode_security_label(xdr, rqstp, context,
|
||||
contextlen);
|
||||
if (status)
|
||||
goto out;
|
||||
}
|
||||
|
||||
attrlen = htonl(xdr->buf->len - attrlen_offset - 4);
|
||||
write_bytes_to_xdr_buf(xdr->buf, attrlen_offset, &attrlen, 4);
|
||||
status = nfs_ok;
|
||||
|
|
Loading…
Reference in a new issue