diff options
| author | Steve French <sfrench@us.ibm.com> | 2005-12-31 13:27:22 -0500 | 
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2005-12-31 13:27:22 -0500 | 
| commit | eea60caef610c7a6c58c0de9c80ae1e438e01301 (patch) | |
| tree | 25e19289bba003fe085e589430d0d981fd6b73a7 /fs/hostfs/hostfs_kern.c | |
| parent | da8543ef125afc7bba4da526b61a1ae07dc25109 (diff) | |
| parent | 82c9df820112c6286a8e8fbe482e94b65b49062c (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/hostfs/hostfs_kern.c')
| -rw-r--r-- | fs/hostfs/hostfs_kern.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index 4684eb7d48c6..b3ad0bd0312f 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c | |||
| @@ -501,11 +501,16 @@ int hostfs_commit_write(struct file *file, struct page *page, unsigned from, | |||
| 501 | long long start; | 501 | long long start; | 
| 502 | int err = 0; | 502 | int err = 0; | 
| 503 | 503 | ||
| 504 | start = (long long) (page->index << PAGE_CACHE_SHIFT) + from; | 504 | start = (((long long) page->index) << PAGE_CACHE_SHIFT) + from; | 
| 505 | buffer = kmap(page); | 505 | buffer = kmap(page); | 
| 506 | err = write_file(FILE_HOSTFS_I(file)->fd, &start, buffer + from, | 506 | err = write_file(FILE_HOSTFS_I(file)->fd, &start, buffer + from, | 
| 507 | to - from); | 507 | to - from); | 
| 508 | if(err > 0) err = 0; | 508 | if(err > 0) err = 0; | 
| 509 | |||
| 510 | /* Actually, if !err, write_file has added to-from to start, so, despite | ||
| 511 | * the appearance, we are comparing i_size against the _last_ written | ||
| 512 | * location, as we should. */ | ||
| 513 | |||
| 509 | if(!err && (start > inode->i_size)) | 514 | if(!err && (start > inode->i_size)) | 
| 510 | inode->i_size = start; | 515 | inode->i_size = start; | 
| 511 | 516 | ||
| @@ -910,10 +915,8 @@ static struct inode_operations hostfs_dir_iops = { | |||
| 910 | int hostfs_link_readpage(struct file *file, struct page *page) | 915 | int hostfs_link_readpage(struct file *file, struct page *page) | 
| 911 | { | 916 | { | 
| 912 | char *buffer, *name; | 917 | char *buffer, *name; | 
| 913 | long long start; | ||
| 914 | int err; | 918 | int err; | 
| 915 | 919 | ||
| 916 | start = page->index << PAGE_CACHE_SHIFT; | ||
| 917 | buffer = kmap(page); | 920 | buffer = kmap(page); | 
| 918 | name = inode_name(page->mapping->host, 0); | 921 | name = inode_name(page->mapping->host, 0); | 
| 919 | if(name == NULL) return(-ENOMEM); | 922 | if(name == NULL) return(-ENOMEM); | 
