Add missing cylinder group check-hash updates when doing large expansions

of filesystems.

Reported by:  Colin Percival (cperciva@)
Tested by:    Colin Percival (cperciva@)
MFC after:    3 days
Sponsored by: Netflix
This commit is contained in:
Kirk McKusick 2020-09-22 03:57:48 +00:00
parent 7054f6ec97
commit 54fab0fbc4

View File

@ -590,6 +590,7 @@ updjcg(int cylno, time_t modtime, int fsi, int fso, unsigned int Nflag)
if (sblock.fs_magic == FS_UFS1_MAGIC)
acg.cg_old_ncyl = sblock.fs_old_cpg;
cgckhash(&acg);
wtfs(fsbtodb(&sblock, cgtod(&sblock, cylno)),
(size_t)sblock.fs_cgsize, (void *)&acg, fso, Nflag);
DBG_PRINT0("jcg written\n");
@ -965,6 +966,7 @@ updcsloc(time_t modtime, int fsi, int fso, unsigned int Nflag)
* Now write the former cylinder group containing the cylinder
* summary back to disk.
*/
cgckhash(&acg);
wtfs(fsbtodb(&sblock, cgtod(&sblock, ocscg)),
(size_t)sblock.fs_cgsize, (void *)&acg, fso, Nflag);
DBG_PRINT0("oscg written\n");
@ -1057,6 +1059,7 @@ updcsloc(time_t modtime, int fsi, int fso, unsigned int Nflag)
* Write the new cylinder group containing the cylinder summary
* back to disk.
*/
cgckhash(&acg);
wtfs(fsbtodb(&sblock, cgtod(&sblock, ncscg)),
(size_t)sblock.fs_cgsize, (void *)&acg, fso, Nflag);
DBG_PRINT0("nscg written\n");