Merge branch 'upstream/jump-label-noearly' of git://git.kernel.org/pub/scm/linux...
[firefly-linux-kernel-4.4.55.git] / fs / nfs / callback_xdr.c
index 918ad647afeaf4fe62840ea8d3146bb6ed87f406..726e59a9e50f6ad20471895793efdb171aed7dd7 100644 (file)
@@ -488,17 +488,18 @@ static __be32 decode_recallany_args(struct svc_rqst *rqstp,
                                      struct xdr_stream *xdr,
                                      struct cb_recallanyargs *args)
 {
-       __be32 *p;
+       uint32_t bitmap[2];
+       __be32 *p, status;
 
        args->craa_addr = svc_addr(rqstp);
        p = read_buf(xdr, 4);
        if (unlikely(p == NULL))
                return htonl(NFS4ERR_BADXDR);
        args->craa_objs_to_keep = ntohl(*p++);
-       p = read_buf(xdr, 4);
-       if (unlikely(p == NULL))
-               return htonl(NFS4ERR_BADXDR);
-       args->craa_type_mask = ntohl(*p);
+       status = decode_bitmap(xdr, bitmap);
+       if (unlikely(status))
+               return status;
+       args->craa_type_mask = bitmap[0];
 
        return 0;
 }
@@ -986,4 +987,5 @@ struct svc_version nfs4_callback_version4 = {
        .vs_proc = nfs4_callback_procedures1,
        .vs_xdrsize = NFS4_CALLBACK_XDRSIZE,
        .vs_dispatch = NULL,
+       .vs_hidden = 1,
 };