]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - mm/truncate.c
Merge tag 'kbuild-uapi-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/masahi...
[mirror_ubuntu-artful-kernel.git] / mm / truncate.c
index 6263affdef8866135f28256b5b1f5e598515d204..83a059e8cd1de2c950dfc4ad790fcf1140df34b6 100644 (file)
@@ -266,9 +266,8 @@ void truncate_inode_pages_range(struct address_space *mapping,
        pgoff_t         index;
        int             i;
 
-       cleancache_invalidate_inode(mapping);
        if (mapping->nrpages == 0 && mapping->nrexceptional == 0)
-               return;
+               goto out;
 
        /* Offsets within partial pages */
        partial_start = lstart & (PAGE_SIZE - 1);
@@ -363,7 +362,7 @@ void truncate_inode_pages_range(struct address_space *mapping,
         * will be released, just zeroed, so we can bail out now.
         */
        if (start >= end)
-               return;
+               goto out;
 
        index = start;
        for ( ; ; ) {
@@ -410,6 +409,8 @@ void truncate_inode_pages_range(struct address_space *mapping,
                pagevec_release(&pvec);
                index++;
        }
+
+out:
        cleancache_invalidate_inode(mapping);
 }
 EXPORT_SYMBOL(truncate_inode_pages_range);
@@ -623,7 +624,9 @@ int invalidate_inode_pages2_range(struct address_space *mapping,
        int ret2 = 0;
        int did_range_unmap = 0;
 
-       cleancache_invalidate_inode(mapping);
+       if (mapping->nrpages == 0 && mapping->nrexceptional == 0)
+               goto out;
+
        pagevec_init(&pvec, 0);
        index = start;
        while (index <= end && pagevec_lookup_entries(&pvec, mapping, index,
@@ -686,6 +689,8 @@ int invalidate_inode_pages2_range(struct address_space *mapping,
                cond_resched();
                index++;
        }
+
+out:
        cleancache_invalidate_inode(mapping);
        return ret;
 }