~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/filesystems/ocfs2-online-filecheck.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 =====================================
  4 OCFS2 file system - online file check
  5 =====================================
  6 
  7 This document will describe OCFS2 online file check feature.
  8 
  9 Introduction
 10 ============
 11 OCFS2 is often used in high-availability systems. However, OCFS2 usually
 12 converts the filesystem to read-only when encounters an error. This may not be
 13 necessary, since turning the filesystem read-only would affect other running
 14 processes as well, decreasing availability.
 15 Then, a mount option (errors=continue) is introduced, which would return the
 16 -EIO errno to the calling process and terminate further processing so that the
 17 filesystem is not corrupted further. The filesystem is not converted to
 18 read-only, and the problematic file's inode number is reported in the kernel
 19 log. The user can try to check/fix this file via online filecheck feature.
 20 
 21 Scope
 22 =====
 23 This effort is to check/fix small issues which may hinder day-to-day operations
 24 of a cluster filesystem by turning the filesystem read-only. The scope of
 25 checking/fixing is at the file level, initially for regular files and eventually
 26 to all files (including system files) of the filesystem.
 27 
 28 In case of directory to file links is incorrect, the directory inode is
 29 reported as erroneous.
 30 
 31 This feature is not suited for extravagant checks which involve dependency of
 32 other components of the filesystem, such as but not limited to, checking if the
 33 bits for file blocks in the allocation has been set. In case of such an error,
 34 the offline fsck should/would be recommended.
 35 
 36 Finally, such an operation/feature should not be automated lest the filesystem
 37 may end up with more damage than before the repair attempt. So, this has to
 38 be performed using user interaction and consent.
 39 
 40 User interface
 41 ==============
 42 When there are errors in the OCFS2 filesystem, they are usually accompanied
 43 by the inode number which caused the error. This inode number would be the
 44 input to check/fix the file.
 45 
 46 There is a sysfs directory for each OCFS2 file system mounting::
 47 
 48   /sys/fs/ocfs2/<devname>/filecheck
 49 
 50 Here, <devname> indicates the name of OCFS2 volume device which has been already
 51 mounted. The file above would accept inode numbers. This could be used to
 52 communicate with kernel space, tell which file(inode number) will be checked or
 53 fixed. Currently, three operations are supported, which includes checking
 54 inode, fixing inode and setting the size of result record history.
 55 
 56 1. If you want to know what error exactly happened to <inode> before fixing, do::
 57 
 58     # echo "<inode>" > /sys/fs/ocfs2/<devname>/filecheck/check
 59     # cat /sys/fs/ocfs2/<devname>/filecheck/check
 60 
 61 The output is like this::
 62 
 63     INO         DONE    ERROR
 64     39502               1       GENERATION
 65 
 66     <INO> lists the inode numbers.
 67     <DONE> indicates whether the operation has been finished.
 68     <ERROR> says what kind of errors was found. For the detailed error numbers,
 69     please refer to the file linux/fs/ocfs2/filecheck.h.
 70 
 71 2. If you determine to fix this inode, do::
 72 
 73     # echo "<inode>" > /sys/fs/ocfs2/<devname>/filecheck/fix
 74     # cat /sys/fs/ocfs2/<devname>/filecheck/fix
 75 
 76 The output is like this:::
 77 
 78     INO         DONE    ERROR
 79     39502               1       SUCCESS
 80 
 81 This time, the <ERROR> column indicates whether this fix is successful or not.
 82 
 83 3. The record cache is used to store the history of check/fix results. It's
 84 default size is 10, and can be adjust between the range of 10 ~ 100. You can
 85 adjust the size like this::
 86 
 87   # echo "<size>" > /sys/fs/ocfs2/<devname>/filecheck/set
 88 
 89 Fixing stuff
 90 ============
 91 On receiving the inode, the filesystem would read the inode and the
 92 file metadata. In case of errors, the filesystem would fix the errors
 93 and report the problems it fixed in the kernel log. As a precautionary measure,
 94 the inode must first be checked for errors before performing a final fix.
 95 
 96 The inode and the result history will be maintained temporarily in a
 97 small linked list buffer which would contain the last (N) inodes
 98 fixed/checked, the detailed errors which were fixed/checked are printed in the
 99 kernel log.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php