#define NFS_PARANOIA 1
-static kmem_cache_t *nfs_page_cachep;
+static struct kmem_cache *nfs_page_cachep;
static inline struct nfs_page *
nfs_page_alloc(void)
{
struct nfs_page *p;
- p = kmem_cache_alloc(nfs_page_cachep, SLAB_KERNEL);
+ p = kmem_cache_alloc(nfs_page_cachep, GFP_KERNEL);
if (p) {
memset(p, 0, sizeof(*p));
INIT_LIST_HEAD(&p->wb_list);
struct nfs_page *pgvec[NFS_SCAN_MAXENTRIES];
struct nfs_page *req;
pgoff_t idx_start, idx_end;
- long count = wbc->nr_to_write;
long res = 0;
int found, i;
- if (nfsi->ndirty == 0 || count <= 0)
+ if (nfsi->ndirty == 0)
return 0;
if (wbc->range_cyclic) {
idx_start = 0;
for (;;) {
unsigned int toscan = NFS_SCAN_MAXENTRIES;
- if (toscan > count)
- toscan = count;
found = radix_tree_gang_lookup_tag(&nfsi->nfs_page_tree,
(void **)&pgvec[0], idx_start, toscan,
NFS_PAGE_TAG_DIRTY);
nfsi->ndirty--;
nfs_list_remove_request(req);
nfs_list_add_request(req, dst);
- dec_zone_page_state(req->wb_page, NR_FILE_DIRTY);
res++;
if (res == LONG_MAX)
goto out;
- count--;
- if (count == 0)
- goto out;
-
next:
idx_start = req->wb_index + 1;
}
}
out:
- wbc->nr_to_write = count;
WARN_ON ((nfsi->ndirty == 0) != list_empty(&nfsi->dirty));
return res;
}