NFSv4.1: Add xdr support for CLAIM_FH and CLAIM_DELEG_CUR_FH opens
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 15 Mar 2013 19:39:06 +0000 (15:39 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 25 Mar 2013 16:04:11 +0000 (12:04 -0400)
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4xdr.c

index 9d328777b4c1dbbca7e4a7ade0090333a514782d..650fa322b903961a8e90b07c1a75ea19d3c374b1 100644 (file)
@@ -1459,6 +1459,23 @@ static inline void encode_claim_delegate_cur(struct xdr_stream *xdr, const struc
        encode_string(xdr, name->len, name->name);
 }
 
+static inline void encode_claim_fh(struct xdr_stream *xdr)
+{
+       __be32 *p;
+
+       p = reserve_space(xdr, 4);
+       *p = cpu_to_be32(NFS4_OPEN_CLAIM_FH);
+}
+
+static inline void encode_claim_delegate_cur_fh(struct xdr_stream *xdr, const nfs4_stateid *stateid)
+{
+       __be32 *p;
+
+       p = reserve_space(xdr, 4);
+       *p = cpu_to_be32(NFS4_OPEN_CLAIM_DELEG_CUR_FH);
+       encode_nfs4_stateid(xdr, stateid);
+}
+
 static void encode_open(struct xdr_stream *xdr, const struct nfs_openargs *arg, struct compound_hdr *hdr)
 {
        encode_op_hdr(xdr, OP_OPEN, decode_open_maxsz, hdr);
@@ -1474,6 +1491,12 @@ static void encode_open(struct xdr_stream *xdr, const struct nfs_openargs *arg,
        case NFS4_OPEN_CLAIM_DELEGATE_CUR:
                encode_claim_delegate_cur(xdr, arg->name, &arg->u.delegation);
                break;
+       case NFS4_OPEN_CLAIM_FH:
+               encode_claim_fh(xdr);
+               break;
+       case NFS4_OPEN_CLAIM_DELEG_CUR_FH:
+               encode_claim_delegate_cur_fh(xdr, &arg->u.delegation);
+               break;
        default:
                BUG();
        }