Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */ 2 : : /* 3 : : * NFS protocol definitions 4 : : * 5 : : * This file contains constants mostly for Version 2 of the protocol, 6 : : * but also has a couple of NFSv3 bits in (notably the error codes). 7 : : */ 8 : : #ifndef _LINUX_NFS_H 9 : : #define _LINUX_NFS_H 10 : : 11 : : #include <linux/sunrpc/msg_prot.h> 12 : : #include <linux/string.h> 13 : : #include <uapi/linux/nfs.h> 14 : : 15 : : /* 16 : : * This is the kernel NFS client file handle representation 17 : : */ 18 : : #define NFS_MAXFHSIZE 128 19 : : struct nfs_fh { 20 : : unsigned short size; 21 : : unsigned char data[NFS_MAXFHSIZE]; 22 : : }; 23 : : 24 : : /* 25 : : * Returns a zero iff the size and data fields match. 26 : : * Checks only "size" bytes in the data field. 27 : : */ 28 : 0 : static inline int nfs_compare_fh(const struct nfs_fh *a, const struct nfs_fh *b) 29 : : { 30 [ # # # # ]: 0 : return a->size != b->size || memcmp(a->data, b->data, a->size) != 0; 31 : : } 32 : : 33 : 0 : static inline void nfs_copy_fh(struct nfs_fh *target, const struct nfs_fh *source) 34 : : { 35 : 0 : target->size = source->size; 36 : 0 : memcpy(target->data, source->data, source->size); 37 : : } 38 : : 39 : : 40 : : /* 41 : : * This is really a general kernel constant, but since nothing like 42 : : * this is defined in the kernel headers, I have to do it here. 43 : : */ 44 : : #define NFS_OFFSET_MAX ((__s64)((~(__u64)0) >> 1)) 45 : : 46 : : 47 : : enum nfs3_stable_how { 48 : : NFS_UNSTABLE = 0, 49 : : NFS_DATA_SYNC = 1, 50 : : NFS_FILE_SYNC = 2, 51 : : 52 : : /* used by direct.c to mark verf as invalid */ 53 : : NFS_INVALID_STABLE_HOW = -1 54 : : }; 55 : : #endif /* _LINUX_NFS_H */