[LogFS] Clear PagePrivate when moving journal

do_logfs_journal_wl_pass() must call freeseg(), thereby clear
PagePrivate on all pages of the current journal segment.

Signed-off-by: Joern Engel <joern@logfs.org>

+3 -1
+1
fs/logfs/journal.c
··· 821 logfs_set_segment_reserved(sb, segno); 822 } 823 /* Manually move journal_area */ 824 area->a_segno = super->s_journal_seg[0]; 825 area->a_is_open = 0; 826 area->a_used_bytes = 0;
··· 821 logfs_set_segment_reserved(sb, segno); 822 } 823 /* Manually move journal_area */ 824 + freeseg(sb, area->a_segno); 825 area->a_segno = super->s_journal_seg[0]; 826 area->a_is_open = 0; 827 area->a_used_bytes = 0;
+1
fs/logfs/logfs.h
··· 587 int logfs_init_mapping(struct super_block *sb); 588 void logfs_sync_area(struct logfs_area *area); 589 void logfs_sync_segments(struct super_block *sb); 590 591 /* area handling */ 592 int logfs_init_areas(struct super_block *sb);
··· 587 int logfs_init_mapping(struct super_block *sb); 588 void logfs_sync_area(struct logfs_area *area); 589 void logfs_sync_segments(struct super_block *sb); 590 + void freeseg(struct super_block *sb, u32 segno); 591 592 /* area handling */ 593 int logfs_init_areas(struct super_block *sb);
+1 -1
fs/logfs/segment.c
··· 691 return 0; 692 } 693 694 - static void freeseg(struct super_block *sb, u32 segno) 695 { 696 struct logfs_super *super = logfs_super(sb); 697 struct address_space *mapping = super->s_mapping_inode->i_mapping;
··· 691 return 0; 692 } 693 694 + void freeseg(struct super_block *sb, u32 segno) 695 { 696 struct logfs_super *super = logfs_super(sb); 697 struct address_space *mapping = super->s_mapping_inode->i_mapping;