[PATCH] zoned vm counters: conversion of nr_unstable to per zone counter
Conversion of nr_unstable to a per zone counter We need to do some special modifications to the nfs code since there are multiple cases of disposition and we need to have a page ref for proper accounting. This converts the last critical page state of the VM and therefore we need to remove several functions that were depending on GET_PAGE_STATE_LAST in order to make the kernel compile again. We are only left with event type counters in page state. [akpm@osdl.org: bugfixes] Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
ce866b34ae
commit
fd39fc8561
@@ -525,7 +525,7 @@ nfs_mark_request_commit(struct nfs_page *req)
|
||||
nfs_list_add_request(req, &nfsi->commit);
|
||||
nfsi->ncommit++;
|
||||
spin_unlock(&nfsi->req_lock);
|
||||
inc_page_state(nr_unstable);
|
||||
inc_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
|
||||
mark_inode_dirty(inode);
|
||||
}
|
||||
#endif
|
||||
@@ -1393,7 +1393,6 @@ static void nfs_commit_done(struct rpc_task *task, void *calldata)
|
||||
{
|
||||
struct nfs_write_data *data = calldata;
|
||||
struct nfs_page *req;
|
||||
int res = 0;
|
||||
|
||||
dprintk("NFS: %4d nfs_commit_done (status %d)\n",
|
||||
task->tk_pid, task->tk_status);
|
||||
@@ -1405,6 +1404,7 @@ static void nfs_commit_done(struct rpc_task *task, void *calldata)
|
||||
while (!list_empty(&data->pages)) {
|
||||
req = nfs_list_entry(data->pages.next);
|
||||
nfs_list_remove_request(req);
|
||||
dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
|
||||
|
||||
dprintk("NFS: commit (%s/%Ld %d@%Ld)",
|
||||
req->wb_context->dentry->d_inode->i_sb->s_id,
|
||||
@@ -1431,9 +1431,7 @@ static void nfs_commit_done(struct rpc_task *task, void *calldata)
|
||||
nfs_mark_request_dirty(req);
|
||||
next:
|
||||
nfs_clear_page_writeback(req);
|
||||
res++;
|
||||
}
|
||||
sub_page_state(nr_unstable,res);
|
||||
}
|
||||
|
||||
static const struct rpc_call_ops nfs_commit_ops = {
|
||||
|
Reference in New Issue
Block a user