projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kasan: inline (un)poison_range and check_invalid_free
[linux-2.6-microblaze.git]
/
mm
/
filemap.c
diff --git
a/mm/filemap.c
b/mm/filemap.c
index
2e16daf
..
5c9d564
100644
(file)
--- a/
mm/filemap.c
+++ b/
mm/filemap.c
@@
-2453,6
+2453,9
@@
ssize_t generic_file_buffered_read(struct kiocb *iocb,
if (unlikely(iocb->ki_pos >= inode->i_sb->s_maxbytes))
return 0;
if (unlikely(iocb->ki_pos >= inode->i_sb->s_maxbytes))
return 0;
+ if (unlikely(!iov_iter_count(iter)))
+ return 0;
+
iov_iter_truncate(iter, inode->i_sb->s_maxbytes);
if (nr_pages > ARRAY_SIZE(pages_onstack))
iov_iter_truncate(iter, inode->i_sb->s_maxbytes);
if (nr_pages > ARRAY_SIZE(pages_onstack))
@@
-2981,14
+2984,14
@@
EXPORT_SYMBOL(filemap_map_pages);
vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
{
vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
{
+ struct address_space *mapping = vmf->vma->vm_file->f_mapping;
struct page *page = vmf->page;
struct page *page = vmf->page;
- struct inode *inode = file_inode(vmf->vma->vm_file);
vm_fault_t ret = VM_FAULT_LOCKED;
vm_fault_t ret = VM_FAULT_LOCKED;
- sb_start_pagefault(
inode
->i_sb);
+ sb_start_pagefault(
mapping->host
->i_sb);
file_update_time(vmf->vma->vm_file);
lock_page(page);
file_update_time(vmf->vma->vm_file);
lock_page(page);
- if (page->mapping !=
inode->i_
mapping) {
+ if (page->mapping != mapping) {
unlock_page(page);
ret = VM_FAULT_NOPAGE;
goto out;
unlock_page(page);
ret = VM_FAULT_NOPAGE;
goto out;
@@
-3001,7
+3004,7
@@
vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf)
set_page_dirty(page);
wait_for_stable_page(page);
out:
set_page_dirty(page);
wait_for_stable_page(page);
out:
- sb_end_pagefault(
inode
->i_sb);
+ sb_end_pagefault(
mapping->host
->i_sb);
return ret;
}
return ret;
}
@@
-3244,10
+3247,9
@@
void dio_warn_stale_pagecache(struct file *filp)
{
static DEFINE_RATELIMIT_STATE(_rs, 86400 * HZ, DEFAULT_RATELIMIT_BURST);
char pathname[128];
{
static DEFINE_RATELIMIT_STATE(_rs, 86400 * HZ, DEFAULT_RATELIMIT_BURST);
char pathname[128];
- struct inode *inode = file_inode(filp);
char *path;
char *path;
- errseq_set(&
inode->i
_mapping->wb_err, -EIO);
+ errseq_set(&
filp->f
_mapping->wb_err, -EIO);
if (__ratelimit(&_rs)) {
path = file_path(filp, pathname, sizeof(pathname));
if (IS_ERR(path))
if (__ratelimit(&_rs)) {
path = file_path(filp, pathname, sizeof(pathname));
if (IS_ERR(path))
@@
-3274,7
+3276,7
@@
generic_file_direct_write(struct kiocb *iocb, struct iov_iter *from)
if (iocb->ki_flags & IOCB_NOWAIT) {
/* If there are pages to writeback, return */
if (iocb->ki_flags & IOCB_NOWAIT) {
/* If there are pages to writeback, return */
- if (filemap_range_has_page(
inode->i
_mapping, pos,
+ if (filemap_range_has_page(
file->f
_mapping, pos,
pos + write_len - 1))
return -EAGAIN;
} else {
pos + write_len - 1))
return -EAGAIN;
} else {