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>;

 - PAGE_CACHE_{SIZE,SHIFT,MASK,ALIGN} -> PAGE_{SIZE,SHIFT,MASK,ALIGN};

 - page_cache_get() -> get_page();

 - page_cache_release() -> put_page();

Signed-off-by: Kirill A. Shutemov <[email protected]>
Cc: Boris Brezillon <[email protected]>
Cc: Richard Weinberger <[email protected]>
Cc: Joern Engel <[email protected]>
Cc: David Woodhouse <[email protected]>
Cc: Brian Norris <[email protected]>
---
 drivers/mtd/devices/block2mtd.c | 6 +++---
 drivers/mtd/nand/nandsim.c      | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
index e2c0057737e6..7c887f111a7d 100644
--- a/drivers/mtd/devices/block2mtd.c
+++ b/drivers/mtd/devices/block2mtd.c
@@ -75,7 +75,7 @@ static int _block2mtd_erase(struct block2mtd_dev *dev, loff_t 
to, size_t len)
                                break;
                        }
 
-               page_cache_release(page);
+               put_page(page);
                pages--;
                index++;
        }
@@ -124,7 +124,7 @@ static int block2mtd_read(struct mtd_info *mtd, loff_t 
from, size_t len,
                        return PTR_ERR(page);
 
                memcpy(buf, page_address(page) + offset, cpylen);
-               page_cache_release(page);
+               put_page(page);
 
                if (retlen)
                        *retlen += cpylen;
@@ -164,7 +164,7 @@ static int _block2mtd_write(struct block2mtd_dev *dev, 
const u_char *buf,
                        unlock_page(page);
                        balance_dirty_pages_ratelimited(mapping);
                }
-               page_cache_release(page);
+               put_page(page);
 
                if (retlen)
                        *retlen += cpylen;
diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c
index 1fd519503bb1..a58169a28741 100644
--- a/drivers/mtd/nand/nandsim.c
+++ b/drivers/mtd/nand/nandsim.c
@@ -1339,7 +1339,7 @@ static void put_pages(struct nandsim *ns)
        int i;
 
        for (i = 0; i < ns->held_cnt; i++)
-               page_cache_release(ns->held_pages[i]);
+               put_page(ns->held_pages[i]);
 }
 
 /* Get page cache pages in advance to provide NOFS memory allocation */
@@ -1349,8 +1349,8 @@ static int get_pages(struct nandsim *ns, struct file 
*file, size_t count, loff_t
        struct page *page;
        struct address_space *mapping = file->f_mapping;
 
-       start_index = pos >> PAGE_CACHE_SHIFT;
-       end_index = (pos + count - 1) >> PAGE_CACHE_SHIFT;
+       start_index = pos >> PAGE_SHIFT;
+       end_index = (pos + count - 1) >> PAGE_SHIFT;
        if (end_index - start_index + 1 > NS_MAX_HELD_PAGES)
                return -EINVAL;
        ns->held_cnt = 0;
-- 
2.7.0

Reply via email to