#
ce4e12ca |
|
10-Oct-2018 |
Jérôme Duval <jerome.duval@gmail.com> |
ext2: implements metadata_csum and 64bit features. * Some PVS-Studio warnings are removed. * fixes hardlink count in source and destination folders on rename. * tested with fstorture and fsx (one job). * add new definitions. * import crc32c code from BSD. * add some consistency checks at mount. * DirectoryIterator::_AllocateBestEntryInBlock(), the direntry is checked for consistency before using it, which should avoid crashing on bad data. * DirectoryIterator::_SplitIndexedBlock(): the dotdot entry length should include the dot and dotdot entries length. Change-Id: I0f80d73b65b1ae6ddb2e746a6f85ef806f23dbb0 Reviewed-on: https://review.haiku-os.org/c/haiku/+/1735 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
26aef3ac |
|
11-Nov-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
ext2: Fix enabling/disabling the file cache * Inode: - Rename {Enable,Disable}FileCache() to {Create,Delete}FileCache() and IsFileCacheDisabled() to HasFileCache(), since that is what they actually do. DeleteFileCache() now also sets the attributes to NULL, which makes fCached superfluous. - Introduce {Enable,Disable}FileCache(), which actually enable/disable the file cache. Use those methods for handling O_NOCACHE. * ext2_free_cookie(): Reenable the file cache in case of O_NOCACHE. Fixes crash when O_NOCACHE was used, since the file cache was deleted without clearing the attribute and Inode::ReadAt() would use the deleted object afterward.
|
#
230b9a69 |
|
20-Dec-2010 |
Jérôme Duval <korli@users.berlios.de> |
resource leaks CID 5711, 5712, 5713, 5714 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39902 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
45af882d |
|
18-Dec-2010 |
Jérôme Duval <korli@users.berlios.de> |
* added fsblock_t and fileblock_t definitions, used them when needed. * validate fBlockShift in superblock. * Volume::AllocateBlocks() now uses an absolute fsblock instead of a blockgroup related fsblock. * AllocationBlockGroup now provides absolute fsblock values. * added support for extents feature: ExtentStream class is the equivalent for DataStream class for extent operations. The extent tree implementation is very basic, should work for normal growing/shrinking operations, but not for sparse files. When enlarging a file and extent tree is full, the root is moved in a new block and a new level is added on top. Extents can usually be extended when adjacent blocks are allocated. Shrinking happens by removing leafs one after another. * removed empty IndexedDirectoryIterator.* git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39886 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
583f39e9 |
|
31-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
* switched more uint32 to off_t for 64bit support * added error messages in InodeAllocator, Inode * if BlockAllocator can't initialize, don't fail completely but switch to readonly * fixed a bug in FindNextMarked() for bitmaps with a length non multiple of 32 * Inode::FindBlock() now returns an optional block_run length, useful for get_file_map() * added flag for Inode for extents git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39234 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a1b0ec30 |
|
07-Sep-2010 |
Jérôme Duval <korli@users.berlios.de> |
Patch from Janito Ferreira Filho (aka jjvf): this is the result of his GSoC assignment "Implement ext2/3 Read and Write Support for Haiku". * Tested and checked most features and fs operations, while passing successfully the Linux fsck. Though the implementation still needs more testing and is to be used with caution, it's better in my mind to have the code committed now given the size of the patch. * Code style isn't extensively checked but is mostly OK. Code review is welcome. Some notes from Janito: * Sparse files aren't supported and hard links aren't supported. Write attributes methods aren't activated nor tested. * Journaling needs more testing to make sure it behaves in a compatible way to Ext3, and support for the different modes hasn't been implemented (due to the block and file cache incompatibility). Correct revoke management is also lacking, as is proper management of the superblock state and copies and block group copies. * The code is partly based and inspired by the BFS implementation. Author information might need to be fixed. I'd like to congratulate and thank Janito for his hard work to bring the implementation to the current state. I hope he'll keep on maintaining it and become a regular contributor/committer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38573 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
26aef3ac62e67e29e7895213ef7c5253798564f4 |
|
11-Nov-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
ext2: Fix enabling/disabling the file cache * Inode: - Rename {Enable,Disable}FileCache() to {Create,Delete}FileCache() and IsFileCacheDisabled() to HasFileCache(), since that is what they actually do. DeleteFileCache() now also sets the attributes to NULL, which makes fCached superfluous. - Introduce {Enable,Disable}FileCache(), which actually enable/disable the file cache. Use those methods for handling O_NOCACHE. * ext2_free_cookie(): Reenable the file cache in case of O_NOCACHE. Fixes crash when O_NOCACHE was used, since the file cache was deleted without clearing the attribute and Inode::ReadAt() would use the deleted object afterward.
|
#
230b9a69d3c77475de1a012055f99641f3884726 |
|
20-Dec-2010 |
Jérôme Duval <korli@users.berlios.de> |
resource leaks CID 5711, 5712, 5713, 5714 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39902 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
45af882d0698d575ec1b4883a8ebff276c9519d8 |
|
18-Dec-2010 |
Jérôme Duval <korli@users.berlios.de> |
* added fsblock_t and fileblock_t definitions, used them when needed. * validate fBlockShift in superblock. * Volume::AllocateBlocks() now uses an absolute fsblock instead of a blockgroup related fsblock. * AllocationBlockGroup now provides absolute fsblock values. * added support for extents feature: ExtentStream class is the equivalent for DataStream class for extent operations. The extent tree implementation is very basic, should work for normal growing/shrinking operations, but not for sparse files. When enlarging a file and extent tree is full, the root is moved in a new block and a new level is added on top. Extents can usually be extended when adjacent blocks are allocated. Shrinking happens by removing leafs one after another. * removed empty IndexedDirectoryIterator.* git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39886 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
583f39e94d4065be3e621924661b98d231f29b10 |
|
31-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
* switched more uint32 to off_t for 64bit support * added error messages in InodeAllocator, Inode * if BlockAllocator can't initialize, don't fail completely but switch to readonly * fixed a bug in FindNextMarked() for bitmaps with a length non multiple of 32 * Inode::FindBlock() now returns an optional block_run length, useful for get_file_map() * added flag for Inode for extents git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39234 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a1b0ec30977df3c4f608eaac97ddc03bf9d3b255 |
|
07-Sep-2010 |
Jérôme Duval <korli@users.berlios.de> |
Patch from Janito Ferreira Filho (aka jjvf): this is the result of his GSoC assignment "Implement ext2/3 Read and Write Support for Haiku". * Tested and checked most features and fs operations, while passing successfully the Linux fsck. Though the implementation still needs more testing and is to be used with caution, it's better in my mind to have the code committed now given the size of the patch. * Code style isn't extensively checked but is mostly OK. Code review is welcome. Some notes from Janito: * Sparse files aren't supported and hard links aren't supported. Write attributes methods aren't activated nor tested. * Journaling needs more testing to make sure it behaves in a compatible way to Ext3, and support for the different modes hasn't been implemented (due to the block and file cache incompatibility). Correct revoke management is also lacking, as is proper management of the superblock state and copies and block group copies. * The code is partly based and inspired by the BFS implementation. Author information might need to be fixed. I'd like to congratulate and thank Janito for his hard work to bring the implementation to the current state. I hope he'll keep on maintaining it and become a regular contributor/committer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38573 a95241bf-73f2-0310-859d-f6bbb57e9c96
|