• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  // SPDX-License-Identifier: GPL-2.0
2  /*
3   * Copyright (c) 2005 Silicon Graphics, Inc.
4   * All Rights Reserved.
5   */
6  #ifndef __XFS_EXPORT_H__
7  #define __XFS_EXPORT_H__
8  
9  /*
10   * Common defines for code related to exporting XFS filesystems over NFS.
11   *
12   * The NFS fileid goes out on the wire as an array of
13   * 32bit unsigned ints in host order.  There are 5 possible
14   * formats.
15   *
16   * (1)	fileid_type=0x00
17   *	(no fileid data; handled by the generic code)
18   *
19   * (2)	fileid_type=0x01
20   *	inode-num
21   *	generation
22   *
23   * (3)	fileid_type=0x02
24   *	inode-num
25   *	generation
26   *	parent-inode-num
27   *	parent-generation
28   *
29   * (4)	fileid_type=0x81
30   *	inode-num-lo32
31   *	inode-num-hi32
32   *	generation
33   *
34   * (5)	fileid_type=0x82
35   *	inode-num-lo32
36   *	inode-num-hi32
37   *	generation
38   *	parent-inode-num-lo32
39   *	parent-inode-num-hi32
40   *	parent-generation
41   *
42   * Note, the NFS filehandle also includes an fsid portion which
43   * may have an inode number in it.  That number is hardcoded to
44   * 32bits and there is no way for XFS to intercept it.  In
45   * practice this means when exporting an XFS filesystem with 64bit
46   * inodes you should either export the mountpoint (rather than
47   * a subdirectory) or use the "fsid" export option.
48   */
49  
50  struct xfs_fid64 {
51  	u64 ino;
52  	u32 gen;
53  	u64 parent_ino;
54  	u32 parent_gen;
55  } __attribute__((packed));
56  
57  /* This flag goes on the wire.  Don't play with it. */
58  #define XFS_FILEID_TYPE_64FLAG	0x80	/* NFS fileid has 64bit inodes */
59  
60  #endif	/* __XFS_EXPORT_H__ */
61