System and method for performing an on-line check of a file system
View Patent ↗A system and method for performing an on-line check of a file system modifies various function calls within a file system layer of a storage operating system so that each time the particular inode is retrieved using the modified function calls, a check is performed on the inode and associated buffer trees before returning the requested inode to the calling process.
1. A method for checking a file system implemented by a storage operating system while the file system is available for data access, the method comprising the steps of:
suspending data access to the file system;
unmounting a volume associated with the file system;
modifying a load function in the storage operating system so that the load function performs a checking procedure before returning a requested file system structure;
mounting the volume;
resuming data access to the file system;
loading a file system structure requested by the modified load function;
determining a type of the file system structure;
performing, in response to the file system structure being a directory, a directory checking procedure;
performing, in response to the file system structure being a regular file, an inode checking procedure;
verifying a set of pointers in a buffer tree associated with the inode;
removing any cross links within any buffer tree associated with the inode;
removing all but a first pointer to any block within a buffer tree associated with the inode; and
marking the inode as being checked.
2. The method of claim 1 wherein the step of marking the inode as being checked further comprises modifying an entry in a tracking file, the tracking file stored in the file system.
3. A method for checking a file system implemented by a storage operating system while the file system is available for data access, the method comprising the steps of:
suspending data access to the file system;
unmounting a volume associated with the file system;
modifying a load function in the storage operating system so that the load function performs a checking procedure before returning a requested file system structure;
mounting the volume;
resuming data access to the file system;
loading a file system structure requested by the modified load function;
determining a type of the file system structure;
performing, in response to the file system structure being a directory, a directory checking procedure;
performing, in response to the file system structure being a regular file, an inode checking procedure;
determining if the directory links to a root directory;
determining, in response to the directory not linking to the root directory, if the directory comprises of a special directory;
linking, in response to the directory not linking to the root directory and the directory not comprising a special directory, the directory to a lost and found directory;
loading, using the modified load function, all file system objects in a layer immediately beneath the directory;
verifying a set of pointers in a buffer tree associated with the directory;
removing any cross links within any buffer tree associated with the directory;
removing all but a first pointer to any block within a buffer tree associated with the directory; and
marking the directory as being checked.
4. The method of claim 3 wherein the file system objects in a layer immediately beneath the directory comprises directories.
5. The method of claim 3 wherein the file system objects in a layer immediately beneath the directory comprises files.