Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
fs
nfsd
cache.h
Go to the documentation of this file.
1
/*
2
* Request reply cache. This was heavily inspired by the
3
* implementation in 4.3BSD/4.4BSD.
4
*
5
* Copyright (C) 1995, 1996 Olaf Kirch <
[email protected]
>
6
*/
7
8
#ifndef NFSCACHE_H
9
#define NFSCACHE_H
10
11
#include <
linux/sunrpc/svc.h
>
12
13
/*
14
* Representation of a reply cache entry.
15
*/
16
struct
svc_cacherep
{
17
struct
hlist_node
c_hash
;
18
struct
list_head
c_lru
;
19
20
unsigned
char
c_state
,
/* unused, inprog, done */
21
c_type
,
/* status, buffer */
22
c_secure
: 1;
/* req came from port < 1024 */
23
struct
sockaddr_in
c_addr
;
24
__be32
c_xid
;
25
u32
c_prot
;
26
u32
c_proc
;
27
u32
c_vers
;
28
unsigned
long
c_timestamp
;
29
union
{
30
struct
kvec
u_vec
;
31
__be32
u_status
;
32
}
c_u
;
33
};
34
35
#define c_replvec c_u.u_vec
36
#define c_replstat c_u.u_status
37
38
/* cache entry states */
39
enum
{
40
RC_UNUSED
,
41
RC_INPROG
,
42
RC_DONE
43
};
44
45
/* return values */
46
enum
{
47
RC_DROPIT
,
48
RC_REPLY
,
49
RC_DOIT
,
50
RC_INTR
51
};
52
53
/*
54
* Cache types.
55
* We may want to add more types one day, e.g. for diropres and
56
* attrstat replies. Using cache entries with fixed length instead
57
* of buffer pointers may be more efficient.
58
*/
59
enum
{
60
RC_NOCACHE
,
61
RC_REPLSTAT
,
62
RC_REPLBUFF
,
63
};
64
65
/*
66
* If requests are retransmitted within this interval, they're dropped.
67
*/
68
#define RC_DELAY (HZ/5)
69
70
int
nfsd_reply_cache_init
(
void
);
71
void
nfsd_reply_cache_shutdown
(
void
);
72
int
nfsd_cache_lookup
(
struct
svc_rqst
*);
73
void
nfsd_cache_update
(
struct
svc_rqst
*,
int
,
__be32
*);
74
75
#ifdef CONFIG_NFSD_V4
76
void
nfsd4_set_statp(
struct
svc_rqst
*rqstp,
__be32
*statp);
77
#else
/* CONFIG_NFSD_V4 */
78
static
inline
void
nfsd4_set_statp(
struct
svc_rqst
*rqstp,
__be32
*statp)
79
{
80
}
81
#endif
/* CONFIG_NFSD_V4 */
82
83
#endif
/* NFSCACHE_H */
Generated on Thu Jan 10 2013 12:49:13 for Linux Kernel by
1.8.2