Skip to content

Commit ad6c19e

Browse files
Matthew Wilcox (Oracle)kleikamp
authored andcommitted
jfs: Change metapage->page to metapage->folio
Convert all the users to operate on a folio. Saves sixteen calls to compound_head(). We still use sizeof(struct page) in print_hex_dump, otherwise it will go into the second and third pages of the folio which won't exist for jfs folios (since they are not large). This needs a better solution, but finding it can be postponed. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
1 parent 1252ad1 commit ad6c19e

File tree

3 files changed

+22
-22
lines changed

3 files changed

+22
-22
lines changed

fs/jfs/jfs_logmgr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1600,7 +1600,7 @@ void jfs_flush_journal(struct jfs_log *log, int wait)
16001600
mp, sizeof(struct metapage), 0);
16011601
print_hex_dump(KERN_ERR, "page: ",
16021602
DUMP_PREFIX_ADDRESS, 16,
1603-
sizeof(long), mp->page,
1603+
sizeof(long), mp->folio,
16041604
sizeof(struct page), 0);
16051605
} else
16061606
print_hex_dump(KERN_ERR, "tblock:",

fs/jfs/jfs_metapage.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,17 @@ static inline void __lock_metapage(struct metapage *mp)
4747
do {
4848
set_current_state(TASK_UNINTERRUPTIBLE);
4949
if (metapage_locked(mp)) {
50-
unlock_page(mp->page);
50+
folio_unlock(mp->folio);
5151
io_schedule();
52-
lock_page(mp->page);
52+
folio_lock(mp->folio);
5353
}
5454
} while (trylock_metapage(mp));
5555
__set_current_state(TASK_RUNNING);
5656
remove_wait_queue(&mp->wait, &wait);
5757
}
5858

5959
/*
60-
* Must have mp->page locked
60+
* Must have mp->folio locked
6161
*/
6262
static inline void lock_metapage(struct metapage *mp)
6363
{
@@ -649,7 +649,7 @@ struct metapage *__get_metapage(struct inode *inode, unsigned long lblock,
649649
mp = alloc_metapage(GFP_NOFS);
650650
if (!mp)
651651
goto unlock;
652-
mp->page = &folio->page;
652+
mp->folio = folio;
653653
mp->sb = inode->i_sb;
654654
mp->flag = 0;
655655
mp->xflag = COMMIT_PAGE;
@@ -682,11 +682,11 @@ struct metapage *__get_metapage(struct inode *inode, unsigned long lblock,
682682
void grab_metapage(struct metapage * mp)
683683
{
684684
jfs_info("grab_metapage: mp = 0x%p", mp);
685-
get_page(mp->page);
686-
lock_page(mp->page);
685+
folio_get(mp->folio);
686+
folio_lock(mp->folio);
687687
mp->count++;
688688
lock_metapage(mp);
689-
unlock_page(mp->page);
689+
folio_unlock(mp->folio);
690690
}
691691

692692
static int metapage_write_one(struct folio *folio)
@@ -719,7 +719,7 @@ static int metapage_write_one(struct folio *folio)
719719

720720
void force_metapage(struct metapage *mp)
721721
{
722-
struct folio *folio = page_folio(mp->page);
722+
struct folio *folio = mp->folio;
723723
jfs_info("force_metapage: mp = 0x%p", mp);
724724
set_bit(META_forcewrite, &mp->flag);
725725
clear_bit(META_sync, &mp->flag);
@@ -734,26 +734,26 @@ void force_metapage(struct metapage *mp)
734734

735735
void hold_metapage(struct metapage *mp)
736736
{
737-
lock_page(mp->page);
737+
folio_lock(mp->folio);
738738
}
739739

740740
void put_metapage(struct metapage *mp)
741741
{
742742
if (mp->count || mp->nohomeok) {
743743
/* Someone else will release this */
744-
unlock_page(mp->page);
744+
folio_unlock(mp->folio);
745745
return;
746746
}
747-
get_page(mp->page);
747+
folio_get(mp->folio);
748748
mp->count++;
749749
lock_metapage(mp);
750-
unlock_page(mp->page);
750+
folio_unlock(mp->folio);
751751
release_metapage(mp);
752752
}
753753

754754
void release_metapage(struct metapage * mp)
755755
{
756-
struct folio *folio = page_folio(mp->page);
756+
struct folio *folio = mp->folio;
757757
jfs_info("release_metapage: mp = 0x%p, flag = 0x%lx", mp, mp->flag);
758758

759759
folio_lock(folio);

fs/jfs/jfs_metapage.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ struct metapage {
2424
wait_queue_head_t wait;
2525

2626
/* implementation */
27-
struct page *page;
27+
struct folio *folio;
2828
struct super_block *sb;
2929
unsigned int logical_size;
3030

@@ -90,14 +90,14 @@ static inline void discard_metapage(struct metapage *mp)
9090

9191
static inline void metapage_nohomeok(struct metapage *mp)
9292
{
93-
struct page *page = mp->page;
94-
lock_page(page);
93+
struct folio *folio = mp->folio;
94+
folio_lock(folio);
9595
if (!mp->nohomeok++) {
9696
mark_metapage_dirty(mp);
97-
get_page(page);
98-
wait_on_page_writeback(page);
97+
folio_get(folio);
98+
folio_wait_writeback(folio);
9999
}
100-
unlock_page(page);
100+
folio_unlock(folio);
101101
}
102102

103103
/*
@@ -107,7 +107,7 @@ static inline void metapage_nohomeok(struct metapage *mp)
107107
static inline void metapage_wait_for_io(struct metapage *mp)
108108
{
109109
if (test_bit(META_io, &mp->flag))
110-
wait_on_page_writeback(mp->page);
110+
folio_wait_writeback(mp->folio);
111111
}
112112

113113
/*
@@ -116,7 +116,7 @@ static inline void metapage_wait_for_io(struct metapage *mp)
116116
static inline void _metapage_homeok(struct metapage *mp)
117117
{
118118
if (!--mp->nohomeok)
119-
put_page(mp->page);
119+
folio_put(mp->folio);
120120
}
121121

122122
static inline void metapage_homeok(struct metapage *mp)

0 commit comments

Comments
 (0)