root/fs/nfsd/flexfilelayoutxdr.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * Copyright (c) 2016 Tom Haynes <loghyr@primarydata.com>
   4  */
   5 #ifndef _NFSD_FLEXFILELAYOUTXDR_H
   6 #define _NFSD_FLEXFILELAYOUTXDR_H 1
   7 
   8 #include <linux/inet.h>
   9 #include "xdr4.h"
  10 
  11 #define FF_FLAGS_NO_LAYOUTCOMMIT 1
  12 #define FF_FLAGS_NO_IO_THRU_MDS  2
  13 #define FF_FLAGS_NO_READ_IO      4
  14 
  15 struct xdr_stream;
  16 
  17 #define FF_NETID_LEN            (4)
  18 #define FF_ADDR_LEN             (INET6_ADDRSTRLEN + 8)
  19 struct pnfs_ff_netaddr {
  20         char                            netid[FF_NETID_LEN + 1];
  21         char                            addr[FF_ADDR_LEN + 1];
  22         u32                             netid_len;
  23         u32                             addr_len;
  24 };
  25 
  26 struct pnfs_ff_device_addr {
  27         struct pnfs_ff_netaddr          netaddr;
  28         u32                             version;
  29         u32                             minor_version;
  30         u32                             rsize;
  31         u32                             wsize;
  32         bool                            tightly_coupled;
  33 };
  34 
  35 struct pnfs_ff_layout {
  36         u32                             flags;
  37         u32                             stats_collect_hint;
  38         kuid_t                          uid;
  39         kgid_t                          gid;
  40         struct nfsd4_deviceid           deviceid;
  41         stateid_t                       stateid;
  42         struct nfs_fh                   fh;
  43 };
  44 
  45 __be32 nfsd4_ff_encode_getdeviceinfo(struct xdr_stream *xdr,
  46                 struct nfsd4_getdeviceinfo *gdp);
  47 __be32 nfsd4_ff_encode_layoutget(struct xdr_stream *xdr,
  48                 struct nfsd4_layoutget *lgp);
  49 
  50 #endif /* _NFSD_FLEXFILELAYOUTXDR_H */

/* [<][>][^][v][top][bottom][index][help] */