diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-08-01 09:37:10 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-08-01 09:37:10 +0100 |
commit | e5ba23a1d98db4e433a5edc85eb3242298cd3275 (patch) | |
tree | 985a178f2764181d516898f665588926682a402b /extras/mini-os/lib | |
parent | ee449f80fde4a9bd323209f61a734bf88753c752 (diff) | |
download | xen-e5ba23a1d98db4e433a5edc85eb3242298cd3275.tar.gz xen-e5ba23a1d98db4e433a5edc85eb3242298cd3275.tar.bz2 xen-e5ba23a1d98db4e433a5edc85eb3242298cd3275.zip |
FSIF: extend protocol to multi-grant requests and multi-page ring
To improve throughput and inline the stat response.
Signed-off-by: Grzegorz Milos <gm281@cam.ac.uk>
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
Diffstat (limited to 'extras/mini-os/lib')
-rw-r--r-- | extras/mini-os/lib/sys.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/extras/mini-os/lib/sys.c b/extras/mini-os/lib/sys.c index 517562d3af..457bde3c8d 100644 --- a/extras/mini-os/lib/sys.c +++ b/extras/mini-os/lib/sys.c @@ -231,8 +231,8 @@ int read(int fd, void *buf, size_t nbytes) } case FTYPE_FILE: { ssize_t ret; - if (nbytes > PAGE_SIZE) - nbytes = PAGE_SIZE; + if (nbytes > PAGE_SIZE * FSIF_NR_READ_GNTS) + nbytes = PAGE_SIZE * FSIF_NR_READ_GNTS; ret = fs_read(fs_import, files[fd].file.fd, buf, nbytes, files[fd].file.offset); if (ret > 0) { files[fd].file.offset += ret; @@ -292,8 +292,8 @@ int write(int fd, const void *buf, size_t nbytes) return nbytes; case FTYPE_FILE: { ssize_t ret; - if (nbytes > PAGE_SIZE) - nbytes = PAGE_SIZE; + if (nbytes > PAGE_SIZE * FSIF_NR_WRITE_GNTS) + nbytes = PAGE_SIZE * FSIF_NR_WRITE_GNTS; ret = fs_write(fs_import, files[fd].file.fd, (void *) buf, nbytes, files[fd].file.offset); if (ret > 0) { files[fd].file.offset += ret; |