Hi Goldwyn, Thanks for the good proposal.
On 2015/4/28 20:21, Goldwyn Rodrigues wrote: > Hi Gang, > > On 04/27/2015 10:00 PM, Gang He wrote: >> Hi Glodwyn, >> >> Very nice proposal. >> So far, there are some comments from me. >> 1) which task will we do in check/fix a file, we need to define the detailed >> requirements further, since we just do a light-level file check/fix >> according to inode number, we need to know which items can be done by online >> check, which items can be done by offline fsck. > > For the first phase (regular files), these are all the reasons the disk > validate function would fail. Some examples are ocfs2_validate_inode_block, > ocfs2_validate_extent_block etc. > As we take up system inodes (phase 2), we will add more functionality. > Can we classify all corrupted cases and their corresponding fix ways? Maybe we can get some hints from fsck. And I don't think errors=continue can fit for all cases. For some cases we shouldn't let it continue with errors to prevent more damages. >> 2) can we keep check and fix two option, check option is to check if a file >> is good or bad, but not modify anything, fix option is to check and fix a >> file if the file is corrupted. > > Yes, there are two options, CHECKS only checks wheras FIX fixes the errors. > As a precautionary measure, a CHECK command should be provided before a FIX > is issued. IOW, a file should be checked for errors before actually fixing it. > A convenient way to know which to be checked should also be taken into consideration. >> 3) when users execute the command "echo CHECK <inode> > >> /sys/fs/ocfs2/filecheck" to check a file, how to give the feedback >> information besides printing the messages to syslog? > > The output should be when you cat /sys/fs/ocfs2/filecheck. It would provide > the results of the last (N) files checked. I don't want to flood the kernel > log with this. Thanks for bringing this up, I will put it on the doc. > Something like: > > Inode Status Description > 1234 ERROR Metadata incorrect > 2352 FIXED Valid flag not set > 9382 CHECKING - > 8926 GOOD - > 7230 CANT-FIX Please execute fsck.ocfs2 after taking filesystem offline. > > So, for the current scenario, only 1234 can be fixed. An echo should err with > EINVAL if any other inode number is provided with FIX. > > >> 4) we should support a list to accept the "check/fix" requests from >> user-space and queue them, then handle them one by one, right? what is the >> behavior for the request user which execute "echo check ..." from the user >> space? the user post a request to the kernel space, then the command will >> end or wait for the file check end? >> > > I would not suggest that, atleast for now. This is to improve availability. > However, if the filesystem is very bad, we should suggest an offline check. > However, the user can provide multiple CHECK requests. > _______________________________________________ Ocfs2-devel mailing list Ocfs2-devel@oss.oracle.com https://oss.oracle.com/mailman/listinfo/ocfs2-devel