iPXE
nfs.h File Reference

Network File System protocol. More...

#include <stdint.h>
#include <ipxe/oncrpc.h>

Go to the source code of this file.

Data Structures

struct  nfs_fh
 A NFS file handle. More...
struct  nfs_lookup_reply
 A NFS LOOKUP reply. More...
 A NFS READLINK reply. More...
struct  nfs_read_reply
 A NFS READ reply. More...

Macros

#define ONCRPC_NFS   100003
 NFS protocol number.
#define NFS_VERS   3
 NFS protocol version.
#define NFS3_OK   0
 No error.
#define NFS3ERR_PERM   1
 Not owner.
#define NFS3ERR_NOENT   2
 No such file or directory.
#define NFS3ERR_IO   5
 I/O error.
#define NFS3ERR_NXIO   6
 No such device or address.
#define NFS3ERR_ACCES   13
 Permission denied.
#define NFS3ERR_EXIST   17
 The file specified already exists.
#define NFS3ERR_XDEV   18
 Attempt to do a cross-device hard link.
#define NFS3ERR_NODEV   19
 No such device.
#define NFS3ERR_NOTDIR   20
 Not a directory.
#define NFS3ERR_ISDIR   21
 Is a directory.
#define NFS3ERR_INVAL   22
 Invalid argument.
#define NFS3ERR_NAMETOOLONG   63
 Filename too long.
#define NFS3ERR_STALE   70
 Invalid file handle.
#define NFS3ERR_REMOTE   71
 Too many levels of remote in path.
#define NFS3ERR_BADHANDLE   10001
 Illegal NFS file handle.
#define NFS3ERR_BAD_COOKIE   10003
 READDIR or READDIRPLUS cookie is stale.
#define NFS3ERR_NOTSUPP   10004
 Operation not supported.
#define NFS3ERR_TOOSMALL   10005
 Buffer or request is too small.
#define NFS3ERR_SERVERFAULT   10006
 An error occurred on the server which does not map to any of the legal NFS version 3 protocol error values.
#define NFS3ERR_JUKEBOX   10008
 The server initiated the request, but was not able to complete it in a timely fashion.

Enumerations

enum  nfs_attr_type { NFS_ATTR_SYMLINK = 5 }

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
size_t nfs_iob_get_fh (struct io_buffer *io_buf, struct nfs_fh *fh)
 Extract a file handle from the beginning of an I/O buffer.
size_t nfs_iob_add_fh (struct io_buffer *io_buf, const struct nfs_fh *fh)
 Add a file handle to the end of an I/O buffer.
static void nfs_init_session (struct oncrpc_session *session, struct oncrpc_cred *credential)
 Prepare an ONC RPC session to be used as a NFS session.
int nfs_lookup (struct interface *intf, struct oncrpc_session *session, const struct nfs_fh *fh, const char *filename)
 Send a LOOKUP request.
int nfs_readlink (struct interface *intf, struct oncrpc_session *session, const struct nfs_fh *fh)
 Send a READLINK request.
int nfs_read (struct interface *intf, struct oncrpc_session *session, const struct nfs_fh *fh, uint64_t offset, uint32_t count)
 Send a READ request.
int nfs_get_lookup_reply (struct nfs_lookup_reply *lookup_reply, struct oncrpc_reply *reply)
 Parse a LOOKUP reply.
int nfs_get_readlink_reply (struct nfs_readlink_reply *readlink_reply, struct oncrpc_reply *reply)
 Parse a READLINK reply.
int nfs_get_read_reply (struct nfs_read_reply *read_reply, struct oncrpc_reply *reply)
 Parse a READ reply.

Detailed Description

Network File System protocol.

Definition in file nfs.h.

Macro Definition Documentation

◆ ONCRPC_NFS

#define ONCRPC_NFS   100003

NFS protocol number.

Definition at line 16 of file nfs.h.

Referenced by nfs_init_session(), and nfs_pm_step().

◆ NFS_VERS

#define NFS_VERS   3

NFS protocol version.

Definition at line 19 of file nfs.h.

Referenced by nfs_init_session(), and nfs_pm_step().

◆ NFS3_OK

#define NFS3_OK   0

No error.

Definition at line 22 of file nfs.h.

Referenced by nfs_get_lookup_reply(), nfs_get_read_reply(), and nfs_get_readlink_reply().

◆ NFS3ERR_PERM

#define NFS3ERR_PERM   1

Not owner.

Definition at line 24 of file nfs.h.

Referenced by nfs_get_lookup_reply(), and nfs_get_read_reply().

◆ NFS3ERR_NOENT

#define NFS3ERR_NOENT   2

No such file or directory.

Definition at line 26 of file nfs.h.

Referenced by nfs_get_lookup_reply(), and nfs_get_read_reply().

◆ NFS3ERR_IO

#define NFS3ERR_IO   5

I/O error.

Definition at line 28 of file nfs.h.

Referenced by nfs_get_lookup_reply(), nfs_get_read_reply(), and nfs_get_readlink_reply().

◆ NFS3ERR_NXIO

#define NFS3ERR_NXIO   6

No such device or address.

Definition at line 30 of file nfs.h.

Referenced by nfs_get_read_reply().

◆ NFS3ERR_ACCES

#define NFS3ERR_ACCES   13

Permission denied.

Definition at line 32 of file nfs.h.

Referenced by nfs_get_lookup_reply(), nfs_get_read_reply(), and nfs_get_readlink_reply().

◆ NFS3ERR_EXIST

#define NFS3ERR_EXIST   17

The file specified already exists.

Definition at line 34 of file nfs.h.

◆ NFS3ERR_XDEV

#define NFS3ERR_XDEV   18

Attempt to do a cross-device hard link.

Definition at line 36 of file nfs.h.

◆ NFS3ERR_NODEV

#define NFS3ERR_NODEV   19

No such device.

Definition at line 38 of file nfs.h.

◆ NFS3ERR_NOTDIR

#define NFS3ERR_NOTDIR   20

Not a directory.

Definition at line 40 of file nfs.h.

Referenced by nfs_get_lookup_reply().

◆ NFS3ERR_ISDIR

#define NFS3ERR_ISDIR   21

Is a directory.

Definition at line 42 of file nfs.h.

◆ NFS3ERR_INVAL

#define NFS3ERR_INVAL   22

Invalid argument.

Definition at line 44 of file nfs.h.

Referenced by nfs_get_read_reply(), and nfs_get_readlink_reply().

◆ NFS3ERR_NAMETOOLONG

#define NFS3ERR_NAMETOOLONG   63

Filename too long.

Definition at line 46 of file nfs.h.

Referenced by nfs_get_lookup_reply().

◆ NFS3ERR_STALE

#define NFS3ERR_STALE   70

Invalid file handle.

Definition at line 48 of file nfs.h.

Referenced by nfs_get_lookup_reply(), nfs_get_read_reply(), and nfs_get_readlink_reply().

◆ NFS3ERR_REMOTE

#define NFS3ERR_REMOTE   71

Too many levels of remote in path.

Definition at line 50 of file nfs.h.

◆ NFS3ERR_BADHANDLE

#define NFS3ERR_BADHANDLE   10001

Illegal NFS file handle.

Definition at line 52 of file nfs.h.

Referenced by nfs_get_lookup_reply(), nfs_get_read_reply(), and nfs_get_readlink_reply().

◆ NFS3ERR_BAD_COOKIE

#define NFS3ERR_BAD_COOKIE   10003

READDIR or READDIRPLUS cookie is stale.

Definition at line 54 of file nfs.h.

◆ NFS3ERR_NOTSUPP

#define NFS3ERR_NOTSUPP   10004

Operation not supported.

Definition at line 56 of file nfs.h.

Referenced by nfs_get_readlink_reply().

◆ NFS3ERR_TOOSMALL

#define NFS3ERR_TOOSMALL   10005

Buffer or request is too small.

Definition at line 58 of file nfs.h.

◆ NFS3ERR_SERVERFAULT

#define NFS3ERR_SERVERFAULT   10006

An error occurred on the server which does not map to any of the legal NFS version 3 protocol error values.

Definition at line 61 of file nfs.h.

Referenced by nfs_get_lookup_reply(), nfs_get_read_reply(), and nfs_get_readlink_reply().

◆ NFS3ERR_JUKEBOX

#define NFS3ERR_JUKEBOX   10008

The server initiated the request, but was not able to complete it in a timely fashion.

Definition at line 64 of file nfs.h.

Enumeration Type Documentation

◆ nfs_attr_type

Enumerator
NFS_ATTR_SYMLINK 

Definition at line 66 of file nfs.h.

66 {
68};
@ NFS_ATTR_SYMLINK
Definition nfs.h:67

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ nfs_iob_get_fh()

size_t nfs_iob_get_fh ( struct io_buffer * io_buf,
struct nfs_fh * fh )

Extract a file handle from the beginning of an I/O buffer.

Parameters
io_bufI/O buffer
fhFile handle
Return values
sizeSize of the data read

Definition at line 61 of file nfs.c.

61 {
62 fh->size = oncrpc_iob_get_int ( io_buf );
63
64 if ( fh->size > 64 )
65 return sizeof ( uint32_t );
66
67 memcpy (fh->fh, io_buf->data, fh->size );
68 iob_pull ( io_buf, fh->size );
69
70 return fh->size + sizeof ( uint32_t );
71}
unsigned int uint32_t
Definition stdint.h:12
void * memcpy(void *dest, const void *src, size_t len) __nonnull
#define iob_pull(iobuf, len)
Definition iobuf.h:107
#define oncrpc_iob_get_int(buf)
Get a 32 bits integer from the beginning of an I/O buffer.
Definition oncrpc_iob.h:38
void * data
Start of data.
Definition iobuf.h:53
uint8_t fh[64]
Definition nfs.h:75
size_t size
Definition nfs.h:76

References io_buffer::data, nfs_fh::fh, iob_pull, memcpy(), oncrpc_iob_get_int, and nfs_fh::size.

Referenced by mount_get_mnt_reply(), and nfs_get_lookup_reply().

◆ nfs_iob_add_fh()

size_t nfs_iob_add_fh ( struct io_buffer * io_buf,
const struct nfs_fh * fh )

Add a file handle to the end of an I/O buffer.

Parameters
io_bufI/O buffer
fhFile handle
Return values
sizeSize of the data written

Definition at line 80 of file nfs.c.

80 {
81 size_t s;
82
83 s = oncrpc_iob_add_int ( io_buf, fh->size );
84 memcpy ( iob_put ( io_buf, fh->size ), &fh->fh, fh->size );
85
86 return s + fh->size;
87}
#define iob_put(iobuf, len)
Definition iobuf.h:125
static size_t oncrpc_iob_add_int(struct io_buffer *io_buf, uint32_t val)
Add a 32 bits integer to the end of an I/O buffer.
Definition oncrpc_iob.h:83

References nfs_fh::fh, iob_put, memcpy(), oncrpc_iob_add_int(), and nfs_fh::size.

◆ nfs_init_session()

void nfs_init_session ( struct oncrpc_session * session,
struct oncrpc_cred * credential )
inlinestatic

Prepare an ONC RPC session to be used as a NFS session.

Parameters
sessionONC RPC session
credentialONC RPC credential

The credential parameter must not be NULL, use 'oncrpc_auth_none' if you don't want a particular scheme to be used.

Definition at line 137 of file nfs.h.

138 {
139 oncrpc_init_session ( session, credential, &oncrpc_auth_none,
141}
#define ONCRPC_NFS
NFS protocol number.
Definition nfs.h:16
#define NFS_VERS
NFS protocol version.
Definition nfs.h:19
struct oncrpc_cred oncrpc_auth_none
AUTH NONE authentication flavor.
Definition oncrpc.c:56
void oncrpc_init_session(struct oncrpc_session *session, struct oncrpc_cred *credential, struct oncrpc_cred *verifier, uint32_t prog_name, uint32_t prog_vers)
Prepare an ONC RPC session structure to be used by the ONC RPC layer.
Definition oncrpc.c:115

References NFS_VERS, oncrpc_auth_none, oncrpc_init_session(), and ONCRPC_NFS.

Referenced by nfs_open().

◆ nfs_lookup()

int nfs_lookup ( struct interface * intf,
struct oncrpc_session * session,
const struct nfs_fh * fh,
const char * filename )

Send a LOOKUP request.

Parameters
intfInterface to send the request on
sessionONC RPC session
fhThe file handle of the the directory
filenameThe file name
Return values
rcReturn status code

Definition at line 98 of file nfs.c.

99 {
100 struct oncrpc_field fields[] = {
101 ONCRPC_SUBFIELD ( array, fh->size, &fh->fh ),
102 ONCRPC_FIELD ( str, filename ),
104 };
105
106 return oncrpc_call ( intf, session, NFS_LOOKUP, fields );
107}
uint32_t array
Array number.
Definition edd.h:1
#define NFS_LOOKUP
NFS LOOKUP procedure.
Definition nfs.c:48
int oncrpc_call(struct interface *intf, struct oncrpc_session *session, uint32_t proc_name, const struct oncrpc_field fields[])
Definition oncrpc.c:129
#define ONCRPC_FIELD_END
Definition oncrpc.h:32
#define ONCRPC_SUBFIELD(type, args...)
Definition oncrpc.h:29
#define ONCRPC_FIELD(type, value)
Definition oncrpc.h:28

References array, nfs_fh::fh, NFS_LOOKUP, oncrpc_call(), ONCRPC_FIELD, ONCRPC_FIELD_END, ONCRPC_SUBFIELD, and nfs_fh::size.

Referenced by nfs_step().

◆ nfs_readlink()

int nfs_readlink ( struct interface * intf,
struct oncrpc_session * session,
const struct nfs_fh * fh )

Send a READLINK request.

Parameters
intfInterface to send the request on
sessionONC RPC session
fhThe symlink file handle
Return values
rcReturn status code

Definition at line 117 of file nfs.c.

118 {
119 struct oncrpc_field fields[] = {
120 ONCRPC_SUBFIELD ( array, fh->size, &fh->fh ),
122 };
123
124 return oncrpc_call ( intf, session, NFS_READLINK, fields );
125}
#define NFS_READLINK
NFS READLINK procedure.
Definition nfs.c:50

References array, nfs_fh::fh, NFS_READLINK, oncrpc_call(), ONCRPC_FIELD_END, ONCRPC_SUBFIELD, and nfs_fh::size.

Referenced by nfs_step().

◆ nfs_read()

int nfs_read ( struct interface * intf,
struct oncrpc_session * session,
const struct nfs_fh * fh,
uint64_t offset,
uint32_t count )

Send a READ request.

Parameters
intfInterface to send the request on
sessionONC RPC session
fhThe file handle
offsetOffset
countByte count
Return values
rcReturn status code

Definition at line 137 of file nfs.c.

138 {
139 struct oncrpc_field fields[] = {
140 ONCRPC_SUBFIELD ( array, fh->size, &fh->fh ),
144 };
145
146 return oncrpc_call ( intf, session, NFS_READ, fields );
147}
uint16_t offset
Offset to command line.
Definition bzimage.h:3
static unsigned int count
Number of entries.
Definition dwmac.h:220
int64_t int64
Definition stdint.h:34
int32_t int32
Definition stdint.h:32
#define NFS_READ
NFS READ procedure.
Definition nfs.c:52

References array, count, nfs_fh::fh, NFS_READ, offset, oncrpc_call(), ONCRPC_FIELD, ONCRPC_FIELD_END, ONCRPC_SUBFIELD, and nfs_fh::size.

Referenced by nfs_step().

◆ nfs_get_lookup_reply()

int nfs_get_lookup_reply ( struct nfs_lookup_reply * lookup_reply,
struct oncrpc_reply * reply )

Parse a LOOKUP reply.

Parameters
lookup_replyA structure where the data will be saved
replyThe ONC RPC reply to get data from
Return values
rcReturn status code

Definition at line 156 of file nfs.c.

157 {
158 if ( ! lookup_reply || ! reply )
159 return -EINVAL;
160
161 lookup_reply->status = oncrpc_iob_get_int ( reply->data );
162 switch ( lookup_reply->status )
163 {
164 case NFS3_OK:
165 break;
166 case NFS3ERR_PERM:
167 return -EPERM;
168 case NFS3ERR_NOENT:
169 return -ENOENT;
170 case NFS3ERR_IO:
171 return -EIO;
172 case NFS3ERR_ACCES:
173 return -EACCES;
174 case NFS3ERR_NOTDIR:
175 return -ENOTDIR;
177 return -ENAMETOOLONG;
178 case NFS3ERR_STALE:
179 return -ESTALE;
182 default:
183 return -EPROTO;
184 }
185
186 nfs_iob_get_fh ( reply->data, &lookup_reply->fh );
187
188 if ( oncrpc_iob_get_int ( reply->data ) == 1 )
189 lookup_reply->ent_type = oncrpc_iob_get_int ( reply->data );
190
191 return 0;
192}
#define ENOENT
No such file or directory.
Definition errno.h:515
#define ESTALE
Stale file handle.
Definition errno.h:660
#define EINVAL
Invalid argument.
Definition errno.h:429
#define ENAMETOOLONG
Filename too long.
Definition errno.h:474
#define EPROTO
Protocol error.
Definition errno.h:625
#define EIO
Input/output error.
Definition errno.h:434
#define ENOTDIR
Not a directory.
Definition errno.h:575
#define EACCES
Permission denied.
Definition errno.h:299
#define EPERM
Operation not permitted.
Definition errno.h:615
size_t nfs_iob_get_fh(struct io_buffer *io_buf, struct nfs_fh *fh)
Extract a file handle from the beginning of an I/O buffer.
Definition nfs.c:61
#define NFS3ERR_PERM
Not owner.
Definition nfs.h:24
#define NFS3ERR_SERVERFAULT
An error occurred on the server which does not map to any of the legal NFS version 3 protocol error v...
Definition nfs.h:61
#define NFS3ERR_NOTDIR
Not a directory.
Definition nfs.h:40
#define NFS3ERR_BADHANDLE
Illegal NFS file handle.
Definition nfs.h:52
#define NFS3ERR_NOENT
No such file or directory.
Definition nfs.h:26
#define NFS3ERR_ACCES
Permission denied.
Definition nfs.h:32
#define NFS3ERR_STALE
Invalid file handle.
Definition nfs.h:48
#define NFS3ERR_IO
I/O error.
Definition nfs.h:28
#define NFS3ERR_NAMETOOLONG
Filename too long.
Definition nfs.h:46
#define NFS3_OK
No error.
Definition nfs.h:22
enum nfs_attr_type ent_type
Entity type.
Definition nfs.h:87
struct nfs_fh fh
File handle.
Definition nfs.h:89
uint32_t status
Reply status.
Definition nfs.h:85
struct io_buffer * data
Definition oncrpc.h:68

References oncrpc_reply::data, EACCES, EINVAL, EIO, ENAMETOOLONG, ENOENT, ENOTDIR, nfs_lookup_reply::ent_type, EPERM, EPROTO, ESTALE, nfs_lookup_reply::fh, NFS3_OK, NFS3ERR_ACCES, NFS3ERR_BADHANDLE, NFS3ERR_IO, NFS3ERR_NAMETOOLONG, NFS3ERR_NOENT, NFS3ERR_NOTDIR, NFS3ERR_PERM, NFS3ERR_SERVERFAULT, NFS3ERR_STALE, nfs_iob_get_fh(), oncrpc_iob_get_int, and nfs_lookup_reply::status.

Referenced by nfs_deliver().

◆ nfs_get_readlink_reply()

int nfs_get_readlink_reply ( struct nfs_readlink_reply * readlink_reply,
struct oncrpc_reply * reply )

Parse a READLINK reply.

Parameters
readlink_replyA structure where the data will be saved
replyThe ONC RPC reply to get data from
Return values
rcReturn status code

Definition at line 200 of file nfs.c.

201 {
202 if ( ! readlink_reply || ! reply )
203 return -EINVAL;
204
205 readlink_reply->status = oncrpc_iob_get_int ( reply->data );
206 switch ( readlink_reply->status )
207 {
208 case NFS3_OK:
209 break;
210 case NFS3ERR_IO:
211 return -EIO;
212 case NFS3ERR_ACCES:
213 return -EACCES;
214 case NFS3ERR_INVAL:
215 return -EINVAL;
216 case NFS3ERR_NOTSUPP:
217 return -ENOTSUP;
218 case NFS3ERR_STALE:
219 return -ESTALE;
222 default:
223 return -EPROTO;
224 }
225
226 if ( oncrpc_iob_get_int ( reply->data ) == 1 )
227 iob_pull ( reply->data, 5 * sizeof ( uint32_t ) +
228 8 * sizeof ( uint64_t ) );
229
230 readlink_reply->path_len = oncrpc_iob_get_int ( reply->data );
231 readlink_reply->path = reply->data->data;
232
233 return 0;
234}
unsigned long long uint64_t
Definition stdint.h:13
#define ENOTSUP
Operation not supported.
Definition errno.h:590
#define NFS3ERR_INVAL
Invalid argument.
Definition nfs.h:44
#define NFS3ERR_NOTSUPP
Operation not supported.
Definition nfs.h:56

References io_buffer::data, oncrpc_reply::data, EACCES, EINVAL, EIO, ENOTSUP, EPROTO, ESTALE, iob_pull, NFS3_OK, NFS3ERR_ACCES, NFS3ERR_BADHANDLE, NFS3ERR_INVAL, NFS3ERR_IO, NFS3ERR_NOTSUPP, NFS3ERR_SERVERFAULT, NFS3ERR_STALE, oncrpc_iob_get_int, nfs_readlink_reply::path, nfs_readlink_reply::path_len, and nfs_readlink_reply::status.

Referenced by nfs_deliver().

◆ nfs_get_read_reply()

int nfs_get_read_reply ( struct nfs_read_reply * read_reply,
struct oncrpc_reply * reply )

Parse a READ reply.

Parameters
read_replyA structure where the data will be saved
replyThe ONC RPC reply to get data from
Return values
rcReturn status code

Definition at line 243 of file nfs.c.

244 {
245 if ( ! read_reply || ! reply )
246 return -EINVAL;
247
248 read_reply->status = oncrpc_iob_get_int ( reply->data );
249 switch ( read_reply->status )
250 {
251 case NFS3_OK:
252 break;
253 case NFS3ERR_PERM:
254 return -EPERM;
255 case NFS3ERR_NOENT:
256 return -ENOENT;
257 case NFS3ERR_IO:
258 return -EIO;
259 case NFS3ERR_NXIO:
260 return -ENXIO;
261 case NFS3ERR_ACCES:
262 return -EACCES;
263 case NFS3ERR_INVAL:
264 return -EINVAL;
265 case NFS3ERR_STALE:
266 return -ESTALE;
269 default:
270 return -EPROTO;
271 }
272
273 if ( oncrpc_iob_get_int ( reply->data ) == 1 )
274 {
275 iob_pull ( reply->data, 5 * sizeof ( uint32_t ) );
276 read_reply->filesize = oncrpc_iob_get_int64 ( reply->data );
277 iob_pull ( reply->data, 7 * sizeof ( uint64_t ) );
278 }
279
280 read_reply->count = oncrpc_iob_get_int ( reply->data );
281 read_reply->eof = oncrpc_iob_get_int ( reply->data );
282 read_reply->data_len = oncrpc_iob_get_int ( reply->data );
283 read_reply->data = reply->data->data;
284
285 if ( read_reply->count != read_reply->data_len )
286 return -EPROTO;
287
288 return 0;
289}
#define ENXIO
No such device or address.
Definition errno.h:600
#define NFS3ERR_NXIO
No such device or address.
Definition nfs.h:30
#define oncrpc_iob_get_int64(buf)
Get a 64 bits integer from the beginning of an I/O buffer.
Definition oncrpc_iob.h:52
uint32_t count
Bytes read.
Definition nfs.h:116
uint32_t status
Reply status.
Definition nfs.h:112
uint32_t data_len
Data length.
Definition nfs.h:120
void * data
Data read.
Definition nfs.h:122
uint32_t eof
End-of-File indicator.
Definition nfs.h:118
uint64_t filesize
File size.
Definition nfs.h:114

References nfs_read_reply::count, io_buffer::data, nfs_read_reply::data, oncrpc_reply::data, nfs_read_reply::data_len, EACCES, EINVAL, EIO, ENOENT, ENXIO, nfs_read_reply::eof, EPERM, EPROTO, ESTALE, nfs_read_reply::filesize, iob_pull, NFS3_OK, NFS3ERR_ACCES, NFS3ERR_BADHANDLE, NFS3ERR_INVAL, NFS3ERR_IO, NFS3ERR_NOENT, NFS3ERR_NXIO, NFS3ERR_PERM, NFS3ERR_SERVERFAULT, NFS3ERR_STALE, oncrpc_iob_get_int, oncrpc_iob_get_int64, and nfs_read_reply::status.

Referenced by nfs_deliver().