linux/fs/nfsd/flexfilelayoutxdr.h
<<
>>
Prefs
   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
  15struct xdr_stream;
  16
  17#define FF_NETID_LEN            (4)
  18#define FF_ADDR_LEN             (INET6_ADDRSTRLEN + 8)
  19struct 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
  26struct 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
  35struct 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 */
  51