summaryrefslogtreecommitdiffstats
path: root/fs/cachefiles/rdwr.c
diff options
context:
space:
mode:
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>2016-04-01 08:29:47 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-04-04 13:41:08 -0400
commit09cbfeaf1a5a67bfb3201e0c83c810cecb2efa5a (patch)
tree6cdf210c9c0f981cd22544feeba701892ec19464 /fs/cachefiles/rdwr.c
parentc05c2ec96bb8b7310da1055c7b9d786a3ec6dc0c (diff)
mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros
PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} macros were introduced *long* time ago with promise that one day it will be possible to implement page cache with bigger chunks than PAGE_SIZE. This promise never materialized. And unlikely will. We have many places where PAGE_CACHE_SIZE assumed to be equal to PAGE_SIZE. And it's constant source of confusion on whether PAGE_CACHE_* or PAGE_* constant should be used in a particular case, especially on the border between fs and mm. Global switching to PAGE_CACHE_SIZE != PAGE_SIZE would cause to much breakage to be doable. Let's stop pretending that pages in page cache are special. They are not. The changes are pretty straight-forward: - <foo> << (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> <foo>; - <foo> >> (PAGE_CACHE_SHIFT - PAGE_SHIFT) -> <foo>; - PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} -> PAGE_{SIZE,SHIFT,MASK,ALIGN}; - page_cache_get() -> get_page(); - page_cache_release() -> put_page(); This patch contains automated changes generated with coccinelle using script below. For some reason, coccinelle doesn't patch header files. I've called spatch for them manually. The only adjustment after coccinelle is revert of changes to PAGE_CAHCE_ALIGN definition: we are going to drop it later. There are few places in the code where coccinelle didn't reach. I'll fix them manually in a separate patch. Comments and documentation also will be addressed with the separate patch. virtual patch @@ expression E; @@ - E << (PAGE_CACHE_SHIFT - PAGE_SHIFT) + E @@ expression E; @@ - E >> (PAGE_CACHE_SHIFT - PAGE_SHIFT) + E @@ @@ - PAGE_CACHE_SHIFT + PAGE_SHIFT @@ @@ - PAGE_CACHE_SIZE + PAGE_SIZE @@ @@ - PAGE_CACHE_MASK + PAGE_MASK @@ expression E; @@ - PAGE_CACHE_ALIGN(E) + PAGE_ALIGN(E) @@ expression E; @@ - page_cache_get(E) + get_page(E) @@ expression E; @@ - page_cache_release(E) + put_page(E) Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Acked-by: Michal Hocko <mhocko@suse.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/cachefiles/rdwr.c')
-rw-r--r--fs/cachefiles/rdwr.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/fs/cachefiles/rdwr.c b/fs/cachefiles/rdwr.c
index c0f3da3926a0..afbdc418966d 100644
--- a/fs/cachefiles/rdwr.c
+++ b/fs/cachefiles/rdwr.c
@@ -194,10 +194,10 @@ static void cachefiles_read_copier(struct fscache_operation *_op)
194 error = -EIO; 194 error = -EIO;
195 } 195 }
196 196
197 page_cache_release(monitor->back_page); 197 put_page(monitor->back_page);
198 198
199 fscache_end_io(op, monitor->netfs_page, error); 199 fscache_end_io(op, monitor->netfs_page, error);
200 page_cache_release(monitor->netfs_page); 200 put_page(monitor->netfs_page);
201 fscache_retrieval_complete(op, 1); 201 fscache_retrieval_complete(op, 1);
202 fscache_put_retrieval(op); 202 fscache_put_retrieval(op);
203 kfree(monitor); 203 kfree(monitor);
@@ -288,8 +288,8 @@ monitor_backing_page:
288 _debug("- monitor add"); 288 _debug("- monitor add");
289 289
290 /* install the monitor */ 290 /* install the monitor */
291 page_cache_get(monitor->netfs_page); 291 get_page(monitor->netfs_page);
292 page_cache_get(backpage); 292 get_page(backpage);
293 monitor->back_page = backpage; 293 monitor->back_page = backpage;
294 monitor->monitor.private = backpage; 294 monitor->monitor.private = backpage;
295 add_page_wait_queue(backpage, &monitor->monitor); 295 add_page_wait_queue(backpage, &monitor->monitor);
@@ -310,7 +310,7 @@ backing_page_already_present:
310 _debug("- present"); 310 _debug("- present");
311 311
312 if (newpage) { 312 if (newpage) {
313 page_cache_release(newpage); 313 put_page(newpage);
314 newpage = NULL; 314 newpage = NULL;
315 } 315 }
316 316
@@ -342,7 +342,7 @@ success:
342 342
343out: 343out:
344 if (backpage) 344 if (backpage)
345 page_cache_release(backpage); 345 put_page(backpage);
346 if (monitor) { 346 if (monitor) {
347 fscache_put_retrieval(monitor->op); 347 fscache_put_retrieval(monitor->op);
348 kfree(monitor); 348 kfree(monitor);
@@ -363,7 +363,7 @@ io_error:
363 goto out; 363 goto out;
364 364
365nomem_page: 365nomem_page:
366 page_cache_release(newpage); 366 put_page(newpage);
367nomem_monitor: 367nomem_monitor:
368 fscache_put_retrieval(monitor->op); 368 fscache_put_retrieval(monitor->op);
369 kfree(monitor); 369 kfree(monitor);
@@ -530,7 +530,7 @@ static int cachefiles_read_backing_file(struct cachefiles_object *object,
530 netpage->index, cachefiles_gfp); 530 netpage->index, cachefiles_gfp);
531 if (ret < 0) { 531 if (ret < 0) {
532 if (ret == -EEXIST) { 532 if (ret == -EEXIST) {
533 page_cache_release(netpage); 533 put_page(netpage);
534 fscache_retrieval_complete(op, 1); 534 fscache_retrieval_complete(op, 1);
535 continue; 535 continue;
536 } 536 }
@@ -538,10 +538,10 @@ static int cachefiles_read_backing_file(struct cachefiles_object *object,
538 } 538 }
539 539
540 /* install a monitor */ 540 /* install a monitor */
541 page_cache_get(netpage); 541 get_page(netpage);
542 monitor->netfs_page = netpage; 542 monitor->netfs_page = netpage;
543 543
544 page_cache_get(backpage); 544 get_page(backpage);
545 monitor->back_page = backpage; 545 monitor->back_page = backpage;
546 monitor->monitor.private = backpage; 546 monitor->monitor.private = backpage;
547 add_page_wait_queue(backpage, &monitor->monitor); 547 add_page_wait_queue(backpage, &monitor->monitor);
@@ -555,10 +555,10 @@ static int cachefiles_read_backing_file(struct cachefiles_object *object,
555 unlock_page(backpage); 555 unlock_page(backpage);
556 } 556 }
557 557
558 page_cache_release(backpage); 558 put_page(backpage);
559 backpage = NULL; 559 backpage = NULL;
560 560
561 page_cache_release(netpage); 561 put_page(netpage);
562 netpage = NULL; 562 netpage = NULL;
563 continue; 563 continue;
564 564
@@ -603,7 +603,7 @@ static int cachefiles_read_backing_file(struct cachefiles_object *object,
603 netpage->index, cachefiles_gfp); 603 netpage->index, cachefiles_gfp);
604 if (ret < 0) { 604 if (ret < 0) {
605 if (ret == -EEXIST) { 605 if (ret == -EEXIST) {
606 page_cache_release(netpage); 606 put_page(netpage);
607 fscache_retrieval_complete(op, 1); 607 fscache_retrieval_complete(op, 1);
608 continue; 608 continue;
609 } 609 }
@@ -612,14 +612,14 @@ static int cachefiles_read_backing_file(struct cachefiles_object *object,
612 612
613 copy_highpage(netpage, backpage); 613 copy_highpage(netpage, backpage);
614 614
615 page_cache_release(backpage); 615 put_page(backpage);
616 backpage = NULL; 616 backpage = NULL;
617 617
618 fscache_mark_page_cached(op, netpage); 618 fscache_mark_page_cached(op, netpage);
619 619
620 /* the netpage is unlocked and marked up to date here */ 620 /* the netpage is unlocked and marked up to date here */
621 fscache_end_io(op, netpage, 0); 621 fscache_end_io(op, netpage, 0);
622 page_cache_release(netpage); 622 put_page(netpage);
623 netpage = NULL; 623 netpage = NULL;
624 fscache_retrieval_complete(op, 1); 624 fscache_retrieval_complete(op, 1);
625 continue; 625 continue;
@@ -632,11 +632,11 @@ static int cachefiles_read_backing_file(struct cachefiles_object *object,
632out: 632out:
633 /* tidy up */ 633 /* tidy up */
634 if (newpage) 634 if (newpage)
635 page_cache_release(newpage); 635 put_page(newpage);
636 if (netpage) 636 if (netpage)
637 page_cache_release(netpage); 637 put_page(netpage);
638 if (backpage) 638 if (backpage)
639 page_cache_release(backpage); 639 put_page(backpage);
640 if (monitor) { 640 if (monitor) {
641 fscache_put_retrieval(op); 641 fscache_put_retrieval(op);
642 kfree(monitor); 642 kfree(monitor);
@@ -644,7 +644,7 @@ out:
644 644
645 list_for_each_entry_safe(netpage, _n, list, lru) { 645 list_for_each_entry_safe(netpage, _n, list, lru) {
646 list_del(&netpage->lru); 646 list_del(&netpage->lru);
647 page_cache_release(netpage); 647 put_page(netpage);
648 fscache_retrieval_complete(op, 1); 648 fscache_retrieval_complete(op, 1);
649 } 649 }
650 650