aboutsummaryrefslogtreecommitdiffstats
path: root/mm/filemap.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/filemap.c')
-rw-r--r--mm/filemap.c126
1 files changed, 63 insertions, 63 deletions
diff --git a/mm/filemap.c b/mm/filemap.c
index a8c69c8c0a90..f2479af09da9 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -265,7 +265,7 @@ void delete_from_page_cache(struct page *page)
265 265
266 if (freepage) 266 if (freepage)
267 freepage(page); 267 freepage(page);
268 page_cache_release(page); 268 put_page(page);
269} 269}
270EXPORT_SYMBOL(delete_from_page_cache); 270EXPORT_SYMBOL(delete_from_page_cache);
271 271
@@ -352,8 +352,8 @@ EXPORT_SYMBOL(filemap_flush);
352static int __filemap_fdatawait_range(struct address_space *mapping, 352static int __filemap_fdatawait_range(struct address_space *mapping,
353 loff_t start_byte, loff_t end_byte) 353 loff_t start_byte, loff_t end_byte)
354{ 354{
355 pgoff_t index = start_byte >> PAGE_CACHE_SHIFT; 355 pgoff_t index = start_byte >> PAGE_SHIFT;
356 pgoff_t end = end_byte >> PAGE_CACHE_SHIFT; 356 pgoff_t end = end_byte >> PAGE_SHIFT;
357 struct pagevec pvec; 357 struct pagevec pvec;
358 int nr_pages; 358 int nr_pages;
359 int ret = 0; 359 int ret = 0;
@@ -550,7 +550,7 @@ int replace_page_cache_page(struct page *old, struct page *new, gfp_t gfp_mask)
550 pgoff_t offset = old->index; 550 pgoff_t offset = old->index;
551 freepage = mapping->a_ops->freepage; 551 freepage = mapping->a_ops->freepage;
552 552
553 page_cache_get(new); 553 get_page(new);
554 new->mapping = mapping; 554 new->mapping = mapping;
555 new->index = offset; 555 new->index = offset;
556 556
@@ -572,7 +572,7 @@ int replace_page_cache_page(struct page *old, struct page *new, gfp_t gfp_mask)
572 radix_tree_preload_end(); 572 radix_tree_preload_end();
573 if (freepage) 573 if (freepage)
574 freepage(old); 574 freepage(old);
575 page_cache_release(old); 575 put_page(old);
576 } 576 }
577 577
578 return error; 578 return error;
@@ -651,7 +651,7 @@ static int __add_to_page_cache_locked(struct page *page,
651 return error; 651 return error;
652 } 652 }
653 653
654 page_cache_get(page); 654 get_page(page);
655 page->mapping = mapping; 655 page->mapping = mapping;
656 page->index = offset; 656 page->index = offset;
657 657
@@ -675,7 +675,7 @@ err_insert:
675 spin_unlock_irq(&mapping->tree_lock); 675 spin_unlock_irq(&mapping->tree_lock);
676 if (!huge) 676 if (!huge)
677 mem_cgroup_cancel_charge(page, memcg, false); 677 mem_cgroup_cancel_charge(page, memcg, false);
678 page_cache_release(page); 678 put_page(page);
679 return error; 679 return error;
680} 680}
681 681
@@ -1083,7 +1083,7 @@ repeat:
1083 * include/linux/pagemap.h for details. 1083 * include/linux/pagemap.h for details.
1084 */ 1084 */
1085 if (unlikely(page != *pagep)) { 1085 if (unlikely(page != *pagep)) {
1086 page_cache_release(page); 1086 put_page(page);
1087 goto repeat; 1087 goto repeat;
1088 } 1088 }
1089 } 1089 }
@@ -1121,7 +1121,7 @@ repeat:
1121 /* Has the page been truncated? */ 1121 /* Has the page been truncated? */
1122 if (unlikely(page->mapping != mapping)) { 1122 if (unlikely(page->mapping != mapping)) {
1123 unlock_page(page); 1123 unlock_page(page);
1124 page_cache_release(page); 1124 put_page(page);
1125 goto repeat; 1125 goto repeat;
1126 } 1126 }
1127 VM_BUG_ON_PAGE(page->index != offset, page); 1127 VM_BUG_ON_PAGE(page->index != offset, page);
@@ -1168,7 +1168,7 @@ repeat:
1168 if (fgp_flags & FGP_LOCK) { 1168 if (fgp_flags & FGP_LOCK) {
1169 if (fgp_flags & FGP_NOWAIT) { 1169 if (fgp_flags & FGP_NOWAIT) {
1170 if (!trylock_page(page)) { 1170 if (!trylock_page(page)) {
1171 page_cache_release(page); 1171 put_page(page);
1172 return NULL; 1172 return NULL;
1173 } 1173 }
1174 } else { 1174 } else {
@@ -1178,7 +1178,7 @@ repeat:
1178 /* Has the page been truncated? */ 1178 /* Has the page been truncated? */
1179 if (unlikely(page->mapping != mapping)) { 1179 if (unlikely(page->mapping != mapping)) {
1180 unlock_page(page); 1180 unlock_page(page);
1181 page_cache_release(page); 1181 put_page(page);
1182 goto repeat; 1182 goto repeat;
1183 } 1183 }
1184 VM_BUG_ON_PAGE(page->index != offset, page); 1184 VM_BUG_ON_PAGE(page->index != offset, page);
@@ -1209,7 +1209,7 @@ no_page:
1209 err = add_to_page_cache_lru(page, mapping, offset, 1209 err = add_to_page_cache_lru(page, mapping, offset,
1210 gfp_mask & GFP_RECLAIM_MASK); 1210 gfp_mask & GFP_RECLAIM_MASK);
1211 if (unlikely(err)) { 1211 if (unlikely(err)) {
1212 page_cache_release(page); 1212 put_page(page);
1213 page = NULL; 1213 page = NULL;
1214 if (err == -EEXIST) 1214 if (err == -EEXIST)
1215 goto repeat; 1215 goto repeat;
@@ -1278,7 +1278,7 @@ repeat:
1278 1278
1279 /* Has the page moved? */ 1279 /* Has the page moved? */
1280 if (unlikely(page != *slot)) { 1280 if (unlikely(page != *slot)) {
1281 page_cache_release(page); 1281 put_page(page);
1282 goto repeat; 1282 goto repeat;
1283 } 1283 }
1284export: 1284export:
@@ -1343,7 +1343,7 @@ repeat:
1343 1343
1344 /* Has the page moved? */ 1344 /* Has the page moved? */
1345 if (unlikely(page != *slot)) { 1345 if (unlikely(page != *slot)) {
1346 page_cache_release(page); 1346 put_page(page);
1347 goto repeat; 1347 goto repeat;
1348 } 1348 }
1349 1349
@@ -1405,7 +1405,7 @@ repeat:
1405 1405
1406 /* Has the page moved? */ 1406 /* Has the page moved? */
1407 if (unlikely(page != *slot)) { 1407 if (unlikely(page != *slot)) {
1408 page_cache_release(page); 1408 put_page(page);
1409 goto repeat; 1409 goto repeat;
1410 } 1410 }
1411 1411
@@ -1415,7 +1415,7 @@ repeat:
1415 * negatives, which is just confusing to the caller. 1415 * negatives, which is just confusing to the caller.
1416 */ 1416 */
1417 if (page->mapping == NULL || page->index != iter.index) { 1417 if (page->mapping == NULL || page->index != iter.index) {
1418 page_cache_release(page); 1418 put_page(page);
1419 break; 1419 break;
1420 } 1420 }
1421 1421
@@ -1482,7 +1482,7 @@ repeat:
1482 1482
1483 /* Has the page moved? */ 1483 /* Has the page moved? */
1484 if (unlikely(page != *slot)) { 1484 if (unlikely(page != *slot)) {
1485 page_cache_release(page); 1485 put_page(page);
1486 goto repeat; 1486 goto repeat;
1487 } 1487 }
1488 1488
@@ -1549,7 +1549,7 @@ repeat:
1549 1549
1550 /* Has the page moved? */ 1550 /* Has the page moved? */
1551 if (unlikely(page != *slot)) { 1551 if (unlikely(page != *slot)) {
1552 page_cache_release(page); 1552 put_page(page);
1553 goto repeat; 1553 goto repeat;
1554 } 1554 }
1555export: 1555export:
@@ -1610,11 +1610,11 @@ static ssize_t do_generic_file_read(struct file *filp, loff_t *ppos,
1610 unsigned int prev_offset; 1610 unsigned int prev_offset;
1611 int error = 0; 1611 int error = 0;
1612 1612
1613 index = *ppos >> PAGE_CACHE_SHIFT; 1613 index = *ppos >> PAGE_SHIFT;
1614 prev_index = ra->prev_pos >> PAGE_CACHE_SHIFT; 1614 prev_index = ra->prev_pos >> PAGE_SHIFT;
1615 prev_offset = ra->prev_pos & (PAGE_CACHE_SIZE-1); 1615 prev_offset = ra->prev_pos & (PAGE_SIZE-1);
1616 last_index = (*ppos + iter->count + PAGE_CACHE_SIZE-1) >> PAGE_CACHE_SHIFT; 1616 last_index = (*ppos + iter->count + PAGE_SIZE-1) >> PAGE_SHIFT;
1617 offset = *ppos & ~PAGE_CACHE_MASK; 1617 offset = *ppos & ~PAGE_MASK;
1618 1618
1619 for (;;) { 1619 for (;;) {
1620 struct page *page; 1620 struct page *page;
@@ -1648,7 +1648,7 @@ find_page:
1648 if (PageUptodate(page)) 1648 if (PageUptodate(page))
1649 goto page_ok; 1649 goto page_ok;
1650 1650
1651 if (inode->i_blkbits == PAGE_CACHE_SHIFT || 1651 if (inode->i_blkbits == PAGE_SHIFT ||
1652 !mapping->a_ops->is_partially_uptodate) 1652 !mapping->a_ops->is_partially_uptodate)
1653 goto page_not_up_to_date; 1653 goto page_not_up_to_date;
1654 if (!trylock_page(page)) 1654 if (!trylock_page(page))
@@ -1672,18 +1672,18 @@ page_ok:
1672 */ 1672 */
1673 1673
1674 isize = i_size_read(inode); 1674 isize = i_size_read(inode);
1675 end_index = (isize - 1) >> PAGE_CACHE_SHIFT; 1675 end_index = (isize - 1) >> PAGE_SHIFT;
1676 if (unlikely(!isize || index > end_index)) { 1676 if (unlikely(!isize || index > end_index)) {
1677 page_cache_release(page); 1677 put_page(page);
1678 goto out; 1678 goto out;
1679 } 1679 }
1680 1680
1681 /* nr is the maximum number of bytes to copy from this page */ 1681 /* nr is the maximum number of bytes to copy from this page */
1682 nr = PAGE_CACHE_SIZE; 1682 nr = PAGE_SIZE;
1683 if (index == end_index) { 1683 if (index == end_index) {
1684 nr = ((isize - 1) & ~PAGE_CACHE_MASK) + 1; 1684 nr = ((isize - 1) & ~PAGE_MASK) + 1;
1685 if (nr <= offset) { 1685 if (nr <= offset) {
1686 page_cache_release(page); 1686 put_page(page);
1687 goto out; 1687 goto out;
1688 } 1688 }
1689 } 1689 }
@@ -1711,11 +1711,11 @@ page_ok:
1711 1711
1712 ret = copy_page_to_iter(page, offset, nr, iter); 1712 ret = copy_page_to_iter(page, offset, nr, iter);
1713 offset += ret; 1713 offset += ret;
1714 index += offset >> PAGE_CACHE_SHIFT; 1714 index += offset >> PAGE_SHIFT;
1715 offset &= ~PAGE_CACHE_MASK; 1715 offset &= ~PAGE_MASK;
1716 prev_offset = offset; 1716 prev_offset = offset;
1717 1717
1718 page_cache_release(page); 1718 put_page(page);
1719 written += ret; 1719 written += ret;
1720 if (!iov_iter_count(iter)) 1720 if (!iov_iter_count(iter))
1721 goto out; 1721 goto out;
@@ -1735,7 +1735,7 @@ page_not_up_to_date_locked:
1735 /* Did it get truncated before we got the lock? */ 1735 /* Did it get truncated before we got the lock? */
1736 if (!page->mapping) { 1736 if (!page->mapping) {
1737 unlock_page(page); 1737 unlock_page(page);
1738 page_cache_release(page); 1738 put_page(page);
1739 continue; 1739 continue;
1740 } 1740 }
1741 1741
@@ -1757,7 +1757,7 @@ readpage:
1757 1757
1758 if (unlikely(error)) { 1758 if (unlikely(error)) {
1759 if (error == AOP_TRUNCATED_PAGE) { 1759 if (error == AOP_TRUNCATED_PAGE) {
1760 page_cache_release(page); 1760 put_page(page);
1761 error = 0; 1761 error = 0;
1762 goto find_page; 1762 goto find_page;
1763 } 1763 }
@@ -1774,7 +1774,7 @@ readpage:
1774 * invalidate_mapping_pages got it 1774 * invalidate_mapping_pages got it
1775 */ 1775 */
1776 unlock_page(page); 1776 unlock_page(page);
1777 page_cache_release(page); 1777 put_page(page);
1778 goto find_page; 1778 goto find_page;
1779 } 1779 }
1780 unlock_page(page); 1780 unlock_page(page);
@@ -1789,7 +1789,7 @@ readpage:
1789 1789
1790readpage_error: 1790readpage_error:
1791 /* UHHUH! A synchronous read error occurred. Report it */ 1791 /* UHHUH! A synchronous read error occurred. Report it */
1792 page_cache_release(page); 1792 put_page(page);
1793 goto out; 1793 goto out;
1794 1794
1795no_cached_page: 1795no_cached_page:
@@ -1805,7 +1805,7 @@ no_cached_page:
1805 error = add_to_page_cache_lru(page, mapping, index, 1805 error = add_to_page_cache_lru(page, mapping, index,
1806 mapping_gfp_constraint(mapping, GFP_KERNEL)); 1806 mapping_gfp_constraint(mapping, GFP_KERNEL));
1807 if (error) { 1807 if (error) {
1808 page_cache_release(page); 1808 put_page(page);
1809 if (error == -EEXIST) { 1809 if (error == -EEXIST) {
1810 error = 0; 1810 error = 0;
1811 goto find_page; 1811 goto find_page;
@@ -1817,10 +1817,10 @@ no_cached_page:
1817 1817
1818out: 1818out:
1819 ra->prev_pos = prev_index; 1819 ra->prev_pos = prev_index;
1820 ra->prev_pos <<= PAGE_CACHE_SHIFT; 1820 ra->prev_pos <<= PAGE_SHIFT;
1821 ra->prev_pos |= prev_offset; 1821 ra->prev_pos |= prev_offset;
1822 1822
1823 *ppos = ((loff_t)index << PAGE_CACHE_SHIFT) + offset; 1823 *ppos = ((loff_t)index << PAGE_SHIFT) + offset;
1824 file_accessed(filp); 1824 file_accessed(filp);
1825 return written ? written : error; 1825 return written ? written : error;
1826} 1826}
@@ -1912,7 +1912,7 @@ static int page_cache_read(struct file *file, pgoff_t offset, gfp_t gfp_mask)
1912 else if (ret == -EEXIST) 1912 else if (ret == -EEXIST)
1913 ret = 0; /* losing race to add is OK */ 1913 ret = 0; /* losing race to add is OK */
1914 1914
1915 page_cache_release(page); 1915 put_page(page);
1916 1916
1917 } while (ret == AOP_TRUNCATED_PAGE); 1917 } while (ret == AOP_TRUNCATED_PAGE);
1918 1918
@@ -2022,8 +2022,8 @@ int filemap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
2022 loff_t size; 2022 loff_t size;
2023 int ret = 0; 2023 int ret = 0;
2024 2024
2025 size = round_up(i_size_read(inode), PAGE_CACHE_SIZE); 2025 size = round_up(i_size_read(inode), PAGE_SIZE);
2026 if (offset >= size >> PAGE_CACHE_SHIFT) 2026 if (offset >= size >> PAGE_SHIFT)
2027 return VM_FAULT_SIGBUS; 2027 return VM_FAULT_SIGBUS;
2028 2028
2029 /* 2029 /*
@@ -2049,7 +2049,7 @@ retry_find:
2049 } 2049 }
2050 2050
2051 if (!lock_page_or_retry(page, vma->vm_mm, vmf->flags)) { 2051 if (!lock_page_or_retry(page, vma->vm_mm, vmf->flags)) {
2052 page_cache_release(page); 2052 put_page(page);
2053 return ret | VM_FAULT_RETRY; 2053 return ret | VM_FAULT_RETRY;
2054 } 2054 }
2055 2055
@@ -2072,10 +2072,10 @@ retry_find:
2072 * Found the page and have a reference on it. 2072 * Found the page and have a reference on it.
2073 * We must recheck i_size under page lock. 2073 * We must recheck i_size under page lock.
2074 */ 2074 */
2075 size = round_up(i_size_read(inode), PAGE_CACHE_SIZE); 2075 size = round_up(i_size_read(inode), PAGE_SIZE);
2076 if (unlikely(offset >= size >> PAGE_CACHE_SHIFT)) { 2076 if (unlikely(offset >= size >> PAGE_SHIFT)) {
2077 unlock_page(page); 2077 unlock_page(page);
2078 page_cache_release(page); 2078 put_page(page);
2079 return VM_FAULT_SIGBUS; 2079 return VM_FAULT_SIGBUS;
2080 } 2080 }
2081 2081
@@ -2120,7 +2120,7 @@ page_not_uptodate:
2120 if (!PageUptodate(page)) 2120 if (!PageUptodate(page))
2121 error = -EIO; 2121 error = -EIO;
2122 } 2122 }
2123 page_cache_release(page); 2123 put_page(page);
2124 2124
2125 if (!error || error == AOP_TRUNCATED_PAGE) 2125 if (!error || error == AOP_TRUNCATED_PAGE)
2126 goto retry_find; 2126 goto retry_find;
@@ -2164,7 +2164,7 @@ repeat:
2164 2164
2165 /* Has the page moved? */ 2165 /* Has the page moved? */
2166 if (unlikely(page != *slot)) { 2166 if (unlikely(page != *slot)) {
2167 page_cache_release(page); 2167 put_page(page);
2168 goto repeat; 2168 goto repeat;
2169 } 2169 }
2170 2170
@@ -2178,8 +2178,8 @@ repeat:
2178 if (page->mapping != mapping || !PageUptodate(page)) 2178 if (page->mapping != mapping || !PageUptodate(page))
2179 goto unlock; 2179 goto unlock;
2180 2180
2181 size = round_up(i_size_read(mapping->host), PAGE_CACHE_SIZE); 2181 size = round_up(i_size_read(mapping->host), PAGE_SIZE);
2182 if (page->index >= size >> PAGE_CACHE_SHIFT) 2182 if (page->index >= size >> PAGE_SHIFT)
2183 goto unlock; 2183 goto unlock;
2184 2184
2185 pte = vmf->pte + page->index - vmf->pgoff; 2185 pte = vmf->pte + page->index - vmf->pgoff;
@@ -2195,7 +2195,7 @@ repeat:
2195unlock: 2195unlock:
2196 unlock_page(page); 2196 unlock_page(page);
2197skip: 2197skip:
2198 page_cache_release(page); 2198 put_page(page);
2199next: 2199next:
2200 if (iter.index == vmf->max_pgoff) 2200 if (iter.index == vmf->max_pgoff)
2201 break; 2201 break;
@@ -2278,7 +2278,7 @@ static struct page *wait_on_page_read(struct page *page)
2278 if (!IS_ERR(page)) { 2278 if (!IS_ERR(page)) {
2279 wait_on_page_locked(page); 2279 wait_on_page_locked(page);
2280 if (!PageUptodate(page)) { 2280 if (!PageUptodate(page)) {
2281 page_cache_release(page); 2281 put_page(page);
2282 page = ERR_PTR(-EIO); 2282 page = ERR_PTR(-EIO);
2283 } 2283 }
2284 } 2284 }
@@ -2301,7 +2301,7 @@ repeat:
2301 return ERR_PTR(-ENOMEM); 2301 return ERR_PTR(-ENOMEM);
2302 err = add_to_page_cache_lru(page, mapping, index, gfp); 2302 err = add_to_page_cache_lru(page, mapping, index, gfp);
2303 if (unlikely(err)) { 2303 if (unlikely(err)) {
2304 page_cache_release(page); 2304 put_page(page);
2305 if (err == -EEXIST) 2305 if (err == -EEXIST)
2306 goto repeat; 2306 goto repeat;
2307 /* Presumably ENOMEM for radix tree node */ 2307 /* Presumably ENOMEM for radix tree node */
@@ -2311,7 +2311,7 @@ repeat:
2311filler: 2311filler:
2312 err = filler(data, page); 2312 err = filler(data, page);
2313 if (err < 0) { 2313 if (err < 0) {
2314 page_cache_release(page); 2314 put_page(page);
2315 return ERR_PTR(err); 2315 return ERR_PTR(err);
2316 } 2316 }
2317 2317
@@ -2364,7 +2364,7 @@ filler:
2364 /* Case c or d, restart the operation */ 2364 /* Case c or d, restart the operation */
2365 if (!page->mapping) { 2365 if (!page->mapping) {
2366 unlock_page(page); 2366 unlock_page(page);
2367 page_cache_release(page); 2367 put_page(page);
2368 goto repeat; 2368 goto repeat;
2369 } 2369 }
2370 2370
@@ -2511,7 +2511,7 @@ generic_file_direct_write(struct kiocb *iocb, struct iov_iter *from, loff_t pos)
2511 struct iov_iter data; 2511 struct iov_iter data;
2512 2512
2513 write_len = iov_iter_count(from); 2513 write_len = iov_iter_count(from);
2514 end = (pos + write_len - 1) >> PAGE_CACHE_SHIFT; 2514 end = (pos + write_len - 1) >> PAGE_SHIFT;
2515 2515
2516 written = filemap_write_and_wait_range(mapping, pos, pos + write_len - 1); 2516 written = filemap_write_and_wait_range(mapping, pos, pos + write_len - 1);
2517 if (written) 2517 if (written)
@@ -2525,7 +2525,7 @@ generic_file_direct_write(struct kiocb *iocb, struct iov_iter *from, loff_t pos)
2525 */ 2525 */
2526 if (mapping->nrpages) { 2526 if (mapping->nrpages) {
2527 written = invalidate_inode_pages2_range(mapping, 2527 written = invalidate_inode_pages2_range(mapping,
2528 pos >> PAGE_CACHE_SHIFT, end); 2528 pos >> PAGE_SHIFT, end);
2529 /* 2529 /*
2530 * If a page can not be invalidated, return 0 to fall back 2530 * If a page can not be invalidated, return 0 to fall back
2531 * to buffered write. 2531 * to buffered write.
@@ -2550,7 +2550,7 @@ generic_file_direct_write(struct kiocb *iocb, struct iov_iter *from, loff_t pos)
2550 */ 2550 */
2551 if (mapping->nrpages) { 2551 if (mapping->nrpages) {
2552 invalidate_inode_pages2_range(mapping, 2552 invalidate_inode_pages2_range(mapping,
2553 pos >> PAGE_CACHE_SHIFT, end); 2553 pos >> PAGE_SHIFT, end);
2554 } 2554 }
2555 2555
2556 if (written > 0) { 2556 if (written > 0) {
@@ -2611,8 +2611,8 @@ ssize_t generic_perform_write(struct file *file,
2611 size_t copied; /* Bytes copied from user */ 2611 size_t copied; /* Bytes copied from user */
2612 void *fsdata; 2612 void *fsdata;
2613 2613
2614 offset = (pos & (PAGE_CACHE_SIZE - 1)); 2614 offset = (pos & (PAGE_SIZE - 1));
2615 bytes = min_t(unsigned long, PAGE_CACHE_SIZE - offset, 2615 bytes = min_t(unsigned long, PAGE_SIZE - offset,
2616 iov_iter_count(i)); 2616 iov_iter_count(i));
2617 2617
2618again: 2618again:
@@ -2665,7 +2665,7 @@ again:
2665 * because not all segments in the iov can be copied at 2665 * because not all segments in the iov can be copied at
2666 * once without a pagefault. 2666 * once without a pagefault.
2667 */ 2667 */
2668 bytes = min_t(unsigned long, PAGE_CACHE_SIZE - offset, 2668 bytes = min_t(unsigned long, PAGE_SIZE - offset,
2669 iov_iter_single_seg_count(i)); 2669 iov_iter_single_seg_count(i));
2670 goto again; 2670 goto again;
2671 } 2671 }
@@ -2752,8 +2752,8 @@ ssize_t __generic_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
2752 iocb->ki_pos = endbyte + 1; 2752 iocb->ki_pos = endbyte + 1;
2753 written += status; 2753 written += status;
2754 invalidate_mapping_pages(mapping, 2754 invalidate_mapping_pages(mapping,
2755 pos >> PAGE_CACHE_SHIFT, 2755 pos >> PAGE_SHIFT,
2756 endbyte >> PAGE_CACHE_SHIFT); 2756 endbyte >> PAGE_SHIFT);
2757 } else { 2757 } else {
2758 /* 2758 /*
2759 * We don't know how much we wrote, so just return 2759 * We don't know how much we wrote, so just return