~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/fs/nfsd/blocklayoutxdr.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #ifndef _NFSD_BLOCKLAYOUTXDR_H
  3 #define _NFSD_BLOCKLAYOUTXDR_H 1
  4 
  5 #include <linux/blkdev.h>
  6 #include "xdr4.h"
  7 
  8 struct iomap;
  9 struct xdr_stream;
 10 
 11 struct pnfs_block_extent {
 12         struct nfsd4_deviceid           vol_id;
 13         u64                             foff;
 14         u64                             len;
 15         u64                             soff;
 16         enum pnfs_block_extent_state    es;
 17 };
 18 
 19 struct pnfs_block_range {
 20         u64                             foff;
 21         u64                             len;
 22 };
 23 
 24 /*
 25  * Random upper cap for the uuid length to avoid unbounded allocation.
 26  * Not actually limited by the protocol.
 27  */
 28 #define PNFS_BLOCK_UUID_LEN     128
 29 
 30 struct pnfs_block_volume {
 31         enum pnfs_block_volume_type     type;
 32         union {
 33                 struct {
 34                         u64             offset;
 35                         u32             sig_len;
 36                         u8              sig[PNFS_BLOCK_UUID_LEN];
 37                 } simple;
 38                 struct {
 39                         enum scsi_code_set              code_set;
 40                         enum scsi_designator_type       designator_type;
 41                         int                             designator_len;
 42                         u8                              designator[256];
 43                         u64                             pr_key;
 44                 } scsi;
 45         };
 46 };
 47 
 48 struct pnfs_block_deviceaddr {
 49         u32                             nr_volumes;
 50         struct pnfs_block_volume        volumes[];
 51 };
 52 
 53 __be32 nfsd4_block_encode_getdeviceinfo(struct xdr_stream *xdr,
 54                 const struct nfsd4_getdeviceinfo *gdp);
 55 __be32 nfsd4_block_encode_layoutget(struct xdr_stream *xdr,
 56                 const struct nfsd4_layoutget *lgp);
 57 int nfsd4_block_decode_layoutupdate(__be32 *p, u32 len, struct iomap **iomapp,
 58                 u32 block_size);
 59 int nfsd4_scsi_decode_layoutupdate(__be32 *p, u32 len, struct iomap **iomapp,
 60                 u32 block_size);
 61 
 62 #endif /* _NFSD_BLOCKLAYOUTXDR_H */
 63 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php