hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
kernel/fs/f2fs/segment.h
....@@ -101,6 +101,12 @@
101101 GET_SEGNO_FROM_SEG0(sbi, blk_addr)))
102102 #define BLKS_PER_SEC(sbi) \
103103 ((sbi)->segs_per_sec * (sbi)->blocks_per_seg)
104
+#define CAP_BLKS_PER_SEC(sbi) \
105
+ ((sbi)->segs_per_sec * (sbi)->blocks_per_seg - \
106
+ (sbi)->unusable_blocks_per_sec)
107
+#define CAP_SEGS_PER_SEC(sbi) \
108
+ ((sbi)->segs_per_sec - ((sbi)->unusable_blocks_per_sec >>\
109
+ (sbi)->log_blocks_per_seg))
104110 #define GET_SEC_FROM_SEG(sbi, segno) \
105111 (((segno) == -1) ? -1: (segno) / (sbi)->segs_per_sec)
106112 #define GET_SEG_FROM_SEC(sbi, secno) \
....@@ -295,6 +301,9 @@
295301 struct mutex seglist_lock; /* lock for segment bitmaps */
296302 int nr_dirty[NR_DIRTY_TYPE]; /* # of dirty segments */
297303 unsigned long *victim_secmap; /* background GC victims */
304
+ unsigned long *pinned_secmap; /* pinned victims from foreground GC */
305
+ unsigned int pinned_secmap_cnt; /* count of victims which has pinned data */
306
+ bool enable_pin_section; /* enable pinning section */
298307 };
299308
300309 /* victim selection function for cleaning and SSR */