[PATCH] io-accounting-read-accounting cifs fix

CIFS implements ->readpages and doesn't use read_cache_pages().  So wire the
read IO accounting up within CIFS.

Cc: Jay Lan <jlan@sgi.com>
Cc: Shailabh Nagar <nagar@watson.ibm.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Cc: Chris Sturtivant <csturtiv@sgi.com>
Cc: Tony Ernst <tee@sgi.com>
Cc: Guillaume Thouvenin <guillaume.thouvenin@bull.net>
Cc: Steven French <sfrench@us.ibm.com>
Cc: David Wright <daw@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Andrew Morton 2006-12-10 02:19:44 -08:00 committed by Linus Torvalds
parent 8bde37f08f
commit 6f88cc2e9c
1 changed files with 2 additions and 0 deletions

View File

@ -29,6 +29,7 @@
#include <linux/pagevec.h> #include <linux/pagevec.h>
#include <linux/smp_lock.h> #include <linux/smp_lock.h>
#include <linux/writeback.h> #include <linux/writeback.h>
#include <linux/task_io_accounting_ops.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <asm/div64.h> #include <asm/div64.h>
#include "cifsfs.h" #include "cifsfs.h"
@ -1812,6 +1813,7 @@ static int cifs_readpages(struct file *file, struct address_space *mapping,
cFYI(1, ("Read error in readpages: %d", rc)); cFYI(1, ("Read error in readpages: %d", rc));
break; break;
} else if (bytes_read > 0) { } else if (bytes_read > 0) {
task_io_account_read(bytes_read);
pSMBr = (struct smb_com_read_rsp *)smb_read_data; pSMBr = (struct smb_com_read_rsp *)smb_read_data;
cifs_copy_cache_pages(mapping, page_list, bytes_read, cifs_copy_cache_pages(mapping, page_list, bytes_read,
smb_read_data + 4 /* RFC1001 hdr */ + smb_read_data + 4 /* RFC1001 hdr */ +