|
@@ -67,6 +67,16 @@ struct timeval nfssvc_boot;
|
|
DEFINE_MUTEX(nfsd_mutex);
|
|
DEFINE_MUTEX(nfsd_mutex);
|
|
struct svc_serv *nfsd_serv;
|
|
struct svc_serv *nfsd_serv;
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * nfsd_drc_lock protects nfsd_drc_max_pages and nfsd_drc_pages_used.
|
|
|
|
+ * nfsd_drc_max_pages limits the total amount of memory available for
|
|
|
|
+ * version 4.1 DRC caches.
|
|
|
|
+ * nfsd_drc_pages_used tracks the current version 4.1 DRC memory usage.
|
|
|
|
+ */
|
|
|
|
+spinlock_t nfsd_drc_lock;
|
|
|
|
+unsigned int nfsd_drc_max_pages;
|
|
|
|
+unsigned int nfsd_drc_pages_used;
|
|
|
|
+
|
|
#if defined(CONFIG_NFSD_V2_ACL) || defined(CONFIG_NFSD_V3_ACL)
|
|
#if defined(CONFIG_NFSD_V2_ACL) || defined(CONFIG_NFSD_V3_ACL)
|
|
static struct svc_stat nfsd_acl_svcstats;
|
|
static struct svc_stat nfsd_acl_svcstats;
|
|
static struct svc_version * nfsd_acl_version[] = {
|
|
static struct svc_version * nfsd_acl_version[] = {
|
|
@@ -238,11 +248,12 @@ static void set_max_drc(void)
|
|
{
|
|
{
|
|
/* The percent of nr_free_buffer_pages used by the V4.1 server DRC */
|
|
/* The percent of nr_free_buffer_pages used by the V4.1 server DRC */
|
|
#define NFSD_DRC_SIZE_SHIFT 7
|
|
#define NFSD_DRC_SIZE_SHIFT 7
|
|
- nfsd_serv->sv_drc_max_pages = nr_free_buffer_pages()
|
|
|
|
|
|
+ nfsd_drc_max_pages = nr_free_buffer_pages()
|
|
>> NFSD_DRC_SIZE_SHIFT;
|
|
>> NFSD_DRC_SIZE_SHIFT;
|
|
- nfsd_serv->sv_drc_pages_used = 0;
|
|
|
|
- dprintk("%s svc_drc_max_pages %u\n", __func__,
|
|
|
|
- nfsd_serv->sv_drc_max_pages);
|
|
|
|
|
|
+ nfsd_drc_pages_used = 0;
|
|
|
|
+ spin_lock_init(&nfsd_drc_lock);
|
|
|
|
+ dprintk("%s nfsd_drc_max_pages %u\n", __func__,
|
|
|
|
+ nfsd_drc_max_pages);
|
|
}
|
|
}
|
|
|
|
|
|
int nfsd_create_serv(void)
|
|
int nfsd_create_serv(void)
|