aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/file.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/gfs2/file.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/gfs2/file.c')
-rw-r--r--fs/gfs2/file.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
index c9384f932975..208efc70ad49 100644
--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -354,8 +354,8 @@ static int gfs2_allocate_page_backing(struct page *page)
354{ 354{
355 struct inode *inode = page->mapping->host; 355 struct inode *inode = page->mapping->host;
356 struct buffer_head bh; 356 struct buffer_head bh;
357 unsigned long size = PAGE_CACHE_SIZE; 357 unsigned long size = PAGE_SIZE;
358 u64 lblock = page->index << (PAGE_CACHE_SHIFT - inode->i_blkbits); 358 u64 lblock = page->index << (PAGE_SHIFT - inode->i_blkbits);
359 359
360 do { 360 do {
361 bh.b_state = 0; 361 bh.b_state = 0;
@@ -386,7 +386,7 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
386 struct gfs2_sbd *sdp = GFS2_SB(inode); 386 struct gfs2_sbd *sdp = GFS2_SB(inode);
387 struct gfs2_alloc_parms ap = { .aflags = 0, }; 387 struct gfs2_alloc_parms ap = { .aflags = 0, };
388 unsigned long last_index; 388 unsigned long last_index;
389 u64 pos = page->index << PAGE_CACHE_SHIFT; 389 u64 pos = page->index << PAGE_SHIFT;
390 unsigned int data_blocks, ind_blocks, rblocks; 390 unsigned int data_blocks, ind_blocks, rblocks;
391 struct gfs2_holder gh; 391 struct gfs2_holder gh;
392 loff_t size; 392 loff_t size;
@@ -401,7 +401,7 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
401 if (ret) 401 if (ret)
402 goto out; 402 goto out;
403 403
404 gfs2_size_hint(vma->vm_file, pos, PAGE_CACHE_SIZE); 404 gfs2_size_hint(vma->vm_file, pos, PAGE_SIZE);
405 405
406 gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &gh); 406 gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &gh);
407 ret = gfs2_glock_nq(&gh); 407 ret = gfs2_glock_nq(&gh);
@@ -411,7 +411,7 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
411 set_bit(GLF_DIRTY, &ip->i_gl->gl_flags); 411 set_bit(GLF_DIRTY, &ip->i_gl->gl_flags);
412 set_bit(GIF_SW_PAGED, &ip->i_flags); 412 set_bit(GIF_SW_PAGED, &ip->i_flags);
413 413
414 if (!gfs2_write_alloc_required(ip, pos, PAGE_CACHE_SIZE)) { 414 if (!gfs2_write_alloc_required(ip, pos, PAGE_SIZE)) {
415 lock_page(page); 415 lock_page(page);
416 if (!PageUptodate(page) || page->mapping != inode->i_mapping) { 416 if (!PageUptodate(page) || page->mapping != inode->i_mapping) {
417 ret = -EAGAIN; 417 ret = -EAGAIN;
@@ -424,7 +424,7 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
424 if (ret) 424 if (ret)
425 goto out_unlock; 425 goto out_unlock;
426 426
427 gfs2_write_calc_reserv(ip, PAGE_CACHE_SIZE, &data_blocks, &ind_blocks); 427 gfs2_write_calc_reserv(ip, PAGE_SIZE, &data_blocks, &ind_blocks);
428 ap.target = data_blocks + ind_blocks; 428 ap.target = data_blocks + ind_blocks;
429 ret = gfs2_quota_lock_check(ip, &ap); 429 ret = gfs2_quota_lock_check(ip, &ap);
430 if (ret) 430 if (ret)
@@ -447,7 +447,7 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
447 lock_page(page); 447 lock_page(page);
448 ret = -EINVAL; 448 ret = -EINVAL;
449 size = i_size_read(inode); 449 size = i_size_read(inode);
450 last_index = (size - 1) >> PAGE_CACHE_SHIFT; 450 last_index = (size - 1) >> PAGE_SHIFT;
451 /* Check page index against inode size */ 451 /* Check page index against inode size */
452 if (size == 0 || (page->index > last_index)) 452 if (size == 0 || (page->index > last_index))
453 goto out_trans_end; 453 goto out_trans_end;
@@ -873,7 +873,7 @@ static long __gfs2_fallocate(struct file *file, int mode, loff_t offset, loff_t
873 rblocks += data_blocks ? data_blocks : 1; 873 rblocks += data_blocks ? data_blocks : 1;
874 874
875 error = gfs2_trans_begin(sdp, rblocks, 875 error = gfs2_trans_begin(sdp, rblocks,
876 PAGE_CACHE_SIZE/sdp->sd_sb.sb_bsize); 876 PAGE_SIZE/sdp->sd_sb.sb_bsize);
877 if (error) 877 if (error)
878 goto out_trans_fail; 878 goto out_trans_fail;
879 879