NFSv4: Fix up decode_attr_mdsthreshold
Fix an incorrect use of 'likely()'. The FATTR4_WORD2_MDSTHRESHOLD bit is only expected in NFSv4.1 OPEN calls, and so is actually rather _unlikely_. decode_attr_mdsthreshold needs to clear FATTR4_WORD2_MDSTHRESHOLD from the attribute bitmap after it has decoded the data. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Andy Adamson <andros@netapp.com>
This commit is contained in:
Родитель
1549210fcc
Коммит
029c534737
|
@ -4360,7 +4360,7 @@ static int decode_attr_mdsthreshold(struct xdr_stream *xdr,
|
|||
|
||||
if (unlikely(bitmap[2] & (FATTR4_WORD2_MDSTHRESHOLD - 1U)))
|
||||
return -EIO;
|
||||
if (likely(bitmap[2] & FATTR4_WORD2_MDSTHRESHOLD)) {
|
||||
if (bitmap[2] & FATTR4_WORD2_MDSTHRESHOLD) {
|
||||
/* Did the server return an unrequested attribute? */
|
||||
if (unlikely(res == NULL))
|
||||
return -EREMOTEIO;
|
||||
|
@ -4376,6 +4376,7 @@ static int decode_attr_mdsthreshold(struct xdr_stream *xdr,
|
|||
__func__);
|
||||
|
||||
status = decode_first_threshold_item4(xdr, res);
|
||||
bitmap[2] &= ~FATTR4_WORD2_MDSTHRESHOLD;
|
||||
}
|
||||
return status;
|
||||
out_overflow:
|
||||
|
|
Загрузка…
Ссылка в новой задаче