diff options
Diffstat (limited to 'fs/splice.c')
-rw-r--r-- | fs/splice.c | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/fs/splice.c b/fs/splice.c index badc78ff1246..ae50208e3e6c 100644 --- a/fs/splice.c +++ b/fs/splice.c | |||
@@ -593,36 +593,6 @@ find_page: | |||
593 | goto out; | 593 | goto out; |
594 | } | 594 | } |
595 | 595 | ||
596 | /* | ||
597 | * We get here with the page locked. If the page is also | ||
598 | * uptodate, we don't need to do more. If it isn't, we | ||
599 | * may need to bring it in if we are not going to overwrite | ||
600 | * the full page. | ||
601 | */ | ||
602 | if (!PageUptodate(page)) { | ||
603 | if (this_len < PAGE_CACHE_SIZE) { | ||
604 | ret = mapping->a_ops->readpage(file, page); | ||
605 | if (unlikely(ret)) | ||
606 | goto out; | ||
607 | |||
608 | lock_page(page); | ||
609 | |||
610 | if (!PageUptodate(page)) { | ||
611 | /* | ||
612 | * Page got invalidated, repeat. | ||
613 | */ | ||
614 | if (!page->mapping) { | ||
615 | unlock_page(page); | ||
616 | page_cache_release(page); | ||
617 | goto find_page; | ||
618 | } | ||
619 | ret = -EIO; | ||
620 | goto out; | ||
621 | } | ||
622 | } else | ||
623 | SetPageUptodate(page); | ||
624 | } | ||
625 | |||
626 | ret = mapping->a_ops->prepare_write(file, page, offset, offset+this_len); | 596 | ret = mapping->a_ops->prepare_write(file, page, offset, offset+this_len); |
627 | if (unlikely(ret)) { | 597 | if (unlikely(ret)) { |
628 | loff_t isize = i_size_read(mapping->host); | 598 | loff_t isize = i_size_read(mapping->host); |