Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Copyright (c) 2016 Tom Haynes <loghyr@primarydata.com>
0004  */
0005 #ifndef _NFSD_FLEXFILELAYOUTXDR_H
0006 #define _NFSD_FLEXFILELAYOUTXDR_H 1
0007 
0008 #include <linux/inet.h>
0009 #include "xdr4.h"
0010 
0011 #define FF_FLAGS_NO_LAYOUTCOMMIT 1
0012 #define FF_FLAGS_NO_IO_THRU_MDS  2
0013 #define FF_FLAGS_NO_READ_IO      4
0014 
0015 struct xdr_stream;
0016 
0017 #define FF_NETID_LEN        (4)
0018 #define FF_ADDR_LEN     (INET6_ADDRSTRLEN + 8)
0019 struct pnfs_ff_netaddr {
0020     char                netid[FF_NETID_LEN + 1];
0021     char                addr[FF_ADDR_LEN + 1];
0022     u32             netid_len;
0023     u32             addr_len;
0024 };
0025 
0026 struct pnfs_ff_device_addr {
0027     struct pnfs_ff_netaddr      netaddr;
0028     u32             version;
0029     u32             minor_version;
0030     u32             rsize;
0031     u32             wsize;
0032     bool                tightly_coupled;
0033 };
0034 
0035 struct pnfs_ff_layout {
0036     u32             flags;
0037     u32             stats_collect_hint;
0038     kuid_t              uid;
0039     kgid_t              gid;
0040     struct nfsd4_deviceid       deviceid;
0041     stateid_t           stateid;
0042     struct nfs_fh           fh;
0043 };
0044 
0045 __be32 nfsd4_ff_encode_getdeviceinfo(struct xdr_stream *xdr,
0046         struct nfsd4_getdeviceinfo *gdp);
0047 __be32 nfsd4_ff_encode_layoutget(struct xdr_stream *xdr,
0048         struct nfsd4_layoutget *lgp);
0049 
0050 #endif /* _NFSD_FLEXFILELAYOUTXDR_H */