diff options
-rw-r--r-- | fs/hostfs/hostfs_kern.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index 8163aac81c21..67e556cbfd82 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c @@ -439,25 +439,27 @@ static int hostfs_readpage(struct file *file, struct page *page) { char *buffer; long long start; - int err = 0; + int bytes_read, ret; start = (long long) page->index << PAGE_CACHE_SHIFT; buffer = kmap(page); - err = read_file(FILE_HOSTFS_I(file)->fd, &start, buffer, + bytes_read = read_file(FILE_HOSTFS_I(file)->fd, &start, buffer, PAGE_CACHE_SIZE); - if (err < 0) + if (bytes_read < 0) { + ret = bytes_read; goto out; + } - memset(&buffer[err], 0, PAGE_CACHE_SIZE - err); + memset(buffer + bytes_read, 0, PAGE_CACHE_SIZE - bytes_read); flush_dcache_page(page); SetPageUptodate(page); if (PageError(page)) ClearPageError(page); - err = 0; + ret = 0; out: kunmap(page); unlock_page(page); - return err; + return ret; } static int hostfs_write_begin(struct file *file, struct address_space *mapping, |