63 lines · c
1// SPDX-License-Identifier: GPL-2.02/*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 of13 * 32bit unsigned ints in host order. There are 5 possible14 * formats.15 *16 * (1) fileid_type=0x0017 * (no fileid data; handled by the generic code)18 *19 * (2) fileid_type=0x0120 * inode-num21 * generation22 *23 * (3) fileid_type=0x0224 * inode-num25 * generation26 * parent-inode-num27 * parent-generation28 *29 * (4) fileid_type=0x8130 * inode-num-lo3231 * inode-num-hi3232 * generation33 *34 * (5) fileid_type=0x8235 * inode-num-lo3236 * inode-num-hi3237 * generation38 * parent-inode-num-lo3239 * parent-inode-num-hi3240 * parent-generation41 *42 * Note, the NFS filehandle also includes an fsid portion which43 * may have an inode number in it. That number is hardcoded to44 * 32bits and there is no way for XFS to intercept it. In45 * practice this means when exporting an XFS filesystem with 64bit46 * inodes you should either export the mountpoint (rather than47 * a subdirectory) or use the "fsid" export option.48 */49 50struct 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 60struct inode *xfs_nfs_get_inode(struct super_block *sb, u64 ino, u32 gen);61 62#endif /* __XFS_EXPORT_H__ */63