Increase PPL area to 1MB and use it as circular buffer to store PPL. The entry with highest generation number is the latest one. If PPL to be written is larger then space left in a buffer, rewind the buffer to the start (don't wrap it).
Showing the changes to include/uapi/linux/raid (1 of 7 files). Show all
Unified · Split
| @@ -324,9 +324,10 @@ struct mdp_superblock_1 { · 323 unmodified lines | |||
| 324 | #define MD_FEATURE_RECOVERY_BITMAP 128 /* recovery that is happening | 324 | #define MD_FEATURE_RECOVERY_BITMAP 128 /* recovery that is happening |
| 325 | * is guided by bitmap. | 325 | * is guided by bitmap. |
| 326 | */ | 326 | */ |
| 327 | #define MD_FEATURE_CLUSTERED 256 /* clustered MD */ | 327 | #define MD_FEATURE_CLUSTERED 256 /* clustered MD */ |
| 328 | #define MD_FEATURE_JOURNAL 512 /* support write cache */ | 328 | #define MD_FEATURE_JOURNAL 512 /* support write cache */ |
| 329 | #define MD_FEATURE_PPL 1024 /* support PPL */ | 329 | #define MD_FEATURE_PPL 1024 /* support PPL */ |
| 330 | #define MD_FEATURE_MULTIPLE_PPLS 2048 /* support for multiple PPLs */ | ||
| 330 | #define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \ | 331 | #define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \ |
| 331 | |MD_FEATURE_RECOVERY_OFFSET \ | 332 | |MD_FEATURE_RECOVERY_OFFSET \ |
| 332 | |MD_FEATURE_RESHAPE_ACTIVE \ | 333 | |MD_FEATURE_RESHAPE_ACTIVE \ |
| @@ -338,6 +339,7 @@ struct mdp_superblock_1 { · 5 unmodified lines | |||
| 338 | |MD_FEATURE_CLUSTERED \ | 339 | |MD_FEATURE_CLUSTERED \ |
| 339 | |MD_FEATURE_JOURNAL \ | 340 | |MD_FEATURE_JOURNAL \ |
| 340 | |MD_FEATURE_PPL \ | 341 | |MD_FEATURE_PPL \ |
| 342 | |MD_FEATURE_MULTIPLE_PPLS \ | ||
| 341 | ) | 343 | ) |
| 342 | 344 | ||
| 343 | struct r5l_payload_header { | 345 | struct r5l_payload_header { |