diff options
Diffstat (limited to 'fs/nfsd/nfssvc.c')
-rw-r--r-- | fs/nfsd/nfssvc.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c index 492c79b7800b..d68cd056b281 100644 --- a/fs/nfsd/nfssvc.c +++ b/fs/nfsd/nfssvc.c | |||
@@ -66,6 +66,16 @@ struct timeval nfssvc_boot; | |||
66 | DEFINE_MUTEX(nfsd_mutex); | 66 | DEFINE_MUTEX(nfsd_mutex); |
67 | struct svc_serv *nfsd_serv; | 67 | struct svc_serv *nfsd_serv; |
68 | 68 | ||
69 | /* | ||
70 | * nfsd_drc_lock protects nfsd_drc_max_pages and nfsd_drc_pages_used. | ||
71 | * nfsd_drc_max_pages limits the total amount of memory available for | ||
72 | * version 4.1 DRC caches. | ||
73 | * nfsd_drc_pages_used tracks the current version 4.1 DRC memory usage. | ||
74 | */ | ||
75 | spinlock_t nfsd_drc_lock; | ||
76 | unsigned int nfsd_drc_max_mem; | ||
77 | unsigned int nfsd_drc_mem_used; | ||
78 | |||
69 | #if defined(CONFIG_NFSD_V2_ACL) || defined(CONFIG_NFSD_V3_ACL) | 79 | #if defined(CONFIG_NFSD_V2_ACL) || defined(CONFIG_NFSD_V3_ACL) |
70 | static struct svc_stat nfsd_acl_svcstats; | 80 | static struct svc_stat nfsd_acl_svcstats; |
71 | static struct svc_version * nfsd_acl_version[] = { | 81 | static struct svc_version * nfsd_acl_version[] = { |
@@ -235,13 +245,12 @@ void nfsd_reset_versions(void) | |||
235 | */ | 245 | */ |
236 | static void set_max_drc(void) | 246 | static void set_max_drc(void) |
237 | { | 247 | { |
238 | /* The percent of nr_free_buffer_pages used by the V4.1 server DRC */ | 248 | #define NFSD_DRC_SIZE_SHIFT 10 |
239 | #define NFSD_DRC_SIZE_SHIFT 7 | 249 | nfsd_drc_max_mem = (nr_free_buffer_pages() |
240 | nfsd_serv->sv_drc_max_pages = nr_free_buffer_pages() | 250 | >> NFSD_DRC_SIZE_SHIFT) * PAGE_SIZE; |
241 | >> NFSD_DRC_SIZE_SHIFT; | 251 | nfsd_drc_mem_used = 0; |
242 | nfsd_serv->sv_drc_pages_used = 0; | 252 | spin_lock_init(&nfsd_drc_lock); |
243 | dprintk("%s svc_drc_max_pages %u\n", __func__, | 253 | dprintk("%s nfsd_drc_max_mem %u \n", __func__, nfsd_drc_max_mem); |
244 | nfsd_serv->sv_drc_max_pages); | ||
245 | } | 254 | } |
246 | 255 | ||
247 | int nfsd_create_serv(void) | 256 | int nfsd_create_serv(void) |