Jiro SEKIBA wrote: >> Filesystem modules are often size-constrained. So we skip the >> consistency checks unless they are inherent part of filesystem operation. >> If filesystem is corrupted there isn't much we can do other than hope >> that boot-related files aren't affected. GRUB itself never writes to fs >> metadata so it won't lead to any additional corruption >> > > Ah, I see. Ok, then we may skip checking super block crc. > Skipping only part of crc checks doesn't bring anything. > However, becuase of nature of nilfs2, a log file system, > I need to roll forward the logs to find the latest log > in case that super block does not point appropriate latest log > on unclean unmounting. > > In the forwarding process, log is verified by crc. > > In this case ok. Can you make tests and compare the size with either using lib/crc.c or CRC32 from crypto framework? This is something that would justify keeping lib/crc.c despite my previous plans on its removal if the difference is significant. >>> I added lib/crc.c in SOURCES in common.rmk for the fs module. >>> It looks OK to compile the target fs module. >>> However I got following link error for grub-setup and grub-probe. >>> >>> grub_setup-fs_nilfs2.o: In function `grub_nilfs2_valid_sb': >>> nilfs2.c:(.text+0xe29): undefined reference to `grub_getcrc32' >>> nilfs2.c:(.text+0xe47): undefined reference to `grub_getcrc32' >>> nilfs2.c:(.text+0xe7e): undefined reference to `grub_getcrc32' >>> collect2: ld returned 1 exit status >>> >>> I was trying to specify lib/crc.c in grub_setup_SOURCES, but got same result. >>> >>> >>> >> Stupid question: have you rerun ./autogen.sh ? >> > > Yes, I did. I should have mentioned. > What I did is > > sh autogen.sh > make clean;./configure;make > > May I have a look at this part of the patch? -- Regards Vladimir 'φ-coder/phcoder' Serbinenko