]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - mm/filemap.c
KVM: arm64: vgic-v3: Add ICV_IAR1_EL1 handler
[mirror_ubuntu-zesty-kernel.git] / mm / filemap.c
index b772a33ef640ab0d6770bb3d249a6fe6f16eeebc..34485ecc55f28b0dbab6573dc8fb4d24af5856a2 100644 (file)
@@ -1002,9 +1002,12 @@ void page_endio(struct page *page, bool is_write, int err)
                unlock_page(page);
        } else {
                if (err) {
+                       struct address_space *mapping;
+
                        SetPageError(page);
-                       if (page->mapping)
-                               mapping_set_error(page->mapping, err);
+                       mapping = page_mapping(page);
+                       if (mapping)
+                               mapping_set_error(mapping, err);
                }
                end_page_writeback(page);
        }
@@ -1791,6 +1794,11 @@ static ssize_t do_generic_file_read(struct file *filp, loff_t *ppos,
 
                cond_resched();
 find_page:
+               if (fatal_signal_pending(current)) {
+                       error = -EINTR;
+                       goto out;
+               }
+
                page = find_get_page(mapping, index);
                if (!page) {
                        page_cache_sync_readahead(mapping,
@@ -2392,7 +2400,7 @@ int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
        int ret = VM_FAULT_LOCKED;
 
        sb_start_pagefault(inode->i_sb);
-       file_update_time(vma->vm_file);
+       vma_file_update_time(vma);
        lock_page(page);
        if (page->mapping != inode->i_mapping) {
                unlock_page(page);