#
d9e730c8 |
|
24-Jul-2022 |
PulkoMandy <pulkomandy@pulkomandy.tk> |
libroot: generate a name for nameless volumes Generate a name indicating the volume size and filesystem. Remove code that was doing that or similar things in various filesystems. Change-Id: I6b993735e58cdfaf1f19af575e918614c7fe5679 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5381 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Jessica Hamilton <jessica.l.hamilton@gmail.com> Reviewed-by: John Scipione <jscipione@gmail.com>
|
#
caf0369a |
|
25-Jun-2022 |
Jérôme Duval <jerome.duval@gmail.com> |
ext2: check volume state when mounting we deny mounting read/write when not clean or with errors. Change-Id: Ie0188319618d9d8e7199b308c007fbaeacaed87c Reviewed-on: https://review.haiku-os.org/c/haiku/+/5400 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
|
#
732f5f0f |
|
25-Jun-2022 |
Jérôme Duval <jerome.duval@gmail.com> |
ext2: accept block count until the disk size plus one my understanding is that it's possible that the last block (for instance of size 4KB) is too large for the last few partition sectors, if the partition size isn't a multiple of the block size. Change-Id: I88c709d6e449aa52358fd9343c9f68f7ac1c01fe Reviewed-on: https://review.haiku-os.org/c/haiku/+/5399 Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
d72239d2 |
|
17-Apr-2020 |
Suhel Mehta <mehtasuhel@gmail.com> |
Move DeviceOpener class to a separate file. It is used by several of the filesystems, so it seems a good idea to move it to the shared/ directory. UFS2, BFS, XFS, EXT2 and EXFAT are adjusted. Change-Id: I493e37a1e7d3ae24251469f82befd985a3c1dbdd Reviewed-on: https://review.haiku-os.org/c/haiku/+/2489 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
8d9eff58 |
|
08-May-2020 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
ext2: report ext2/3/4 fs name depending on available features Should help with #12157. Change-Id: I7ea0310957c06606bc66a289afe8c3a78540a803 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2610 Reviewed-by: Kyle Ambroff-Kao <kyle@ambroffkao.com> Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
|
#
b684f018 |
|
30-Aug-2019 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
ext2: fix panic mounting ext2-overwritten-with-BFS volumes I have two partitions which used to be ext2, but have long since been reinitialized as BFS. However, the ext2 superblock is still here, and the ext2 filesystem will detect it. It crashes later on trying to access an Inode at block -1, so just add a check for that to avoid the crash. Change-Id: Ie2ed6a969ea3ffd343dedfe45a15dfc37af05804 Reviewed-on: https://review.haiku-os.org/c/haiku/+/1800 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
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>
|
#
1418cade |
|
11-Jul-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
file_systems: Pass size argument to ioctl in a lot more places.
|
#
cd6365c7 |
|
17-May-2018 |
Jérôme Duval <jerome.duval@gmail.com> |
style fixes
|
#
6bbb8b30 |
|
30-Mar-2017 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
Build fix.
|
#
c8a27537 |
|
28-Mar-2017 |
wangxingdsb <wangxindsb@gmail.com> |
ext2: check some more values for ext2_super_block Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Fixes #13401.
|
#
a130bab3 |
|
08-May-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
ext2: fixes 64 bit warnings
|
#
46cf7a5a |
|
14-Nov-2012 |
Przemysław Buczkowski <przemub@yahoo.pl> |
Fix typos: super block -> superblock (#8974) Signed-off-by: Przemysław Buczkowski <przemub@yahoo.pl> Signed-off-by: Matt Madia <mattmadia@gmail.com>
|
#
a735bdeb |
|
31-Oct-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Align all filesystem relevant places to use B_UNSUPPORTED for unsupported instead of a mix of B_NOT_SUPPORTED and B_UNSUPPORTED. This allows checking for a specific error code. Probably one of those should be phased out... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43025 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
823a2382 |
|
18-Jan-2011 |
Jérôme Duval <korli@users.berlios.de> |
* support for setting volume label (bug #7100). * minor cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40243 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
79de91c1 |
|
07-Jan-2011 |
Jérôme Duval <korli@users.berlios.de> |
* manages blockgroups unused_inodes when the feature is available. * BitmapBlock::FindMarked/FindUnmarked() tried to find a free bit at the end of a full bitmap. This fixes #7069. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40143 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d482c34e |
|
05-Jan-2011 |
Jérôme Duval <korli@users.berlios.de> |
* added flex group, dirnlink and gdtchecksum features for ext4. * I reused crc_table.cpp from the UDF filesystem and switched it to have the reversed algorithm, then generated the table in CRCTable.cpp * added a binary search for extent tree leaves. * fixed a check in InodeAllocator::New(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40129 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
|
#
82b3bdd4 |
|
06-Nov-2010 |
Jérôme Duval <korli@users.berlios.de> |
Stop the journal on Sync(), start the journal when a transaction is written. This helps with fs state on shutdown. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39325 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eb7aa0da |
|
04-Nov-2010 |
Jérôme Duval <korli@users.berlios.de> |
Volume: don't use a block allocator when mounting readonly. BitmapBlock: also use file system blocks, current type is off_t. Also added more trace. BlockAllocator: added an assert and more trace git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39302 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d5a0a8f |
|
01-Nov-2010 |
Jérôme Duval <korli@users.berlios.de> |
fixed warnings, added a better label for >1TB sized volumes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39253 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
|
#
d8772e0c |
|
30-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
* added some support for 64bit feature: extended struct ext2_block_group, block number types changed from uint32 to off_t * added error traces, asserts * BitmapBlock::CheckUnmarked() and CheckMarked() computed a wrong remainingBits and mask git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39203 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
21451bd3 |
|
24-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
added some definitions for readonly features we already support the extra isize feature, so it's now added removed unused Inode::AttributeBlockReadAt() group_descriptor_size was previously a reserved field in the super block git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39125 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7babd0d5 |
|
24-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
added large files feature support git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39120 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
71bfbb71 |
|
17-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
added some logs in case of errors. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38992 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
de66992b |
|
11-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
* added support for huge_file feature, untested (need a >2TB file) * actually checks for readonly features if mounting read-write * don't use a journal when mounting readonly * DataStream::_BlocksNeeded(): in case of double or triple indirects, compute the additional blocks needed using the difference between the old and new indirects blocks. This was resulting in a bad NumBlocks on an inode * BitmapBlock: mark methods missed an iteration when the startingBit was zero. Some blocks were then allocated two times (at most 32 for each allocation run). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38950 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
|
#
17aad616 |
|
19-Apr-2010 |
Jérôme Duval <korli@users.berlios.de> |
Patch from Janito Ferreira Filho (bug #5706): limit the Inode ID to the maximum number of Inodes. Thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36358 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82e4f70d |
|
13-Jan-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Volume::Unmount() never put the root node, and never deleted the volume's block cache. * Some cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35069 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
21faca84 |
|
13-Mar-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Of course I messed it up; now ext2 doesn't crash anymore when I mount something it does support. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29511 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
431a51cc |
|
14-Mar-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added the new incompatible features of ext4. * Now correctly only check for the incompatible features we do understand, not for the ones we don't. Ie. we won't mount ext4 partitions anymore that are using extents. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29510 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
49004dc7 |
|
19-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Remove the additional fs_vnode_ops arugment from get_vnode() again as it's not needed at all when used as intended. Thanks Ingo for the explanation on how this is intended to work. Adjusted the overlay fs accordingly and updated/reverted the changes to the other filesystems. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29250 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
00405f22 |
|
09-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Add an additional argument to get_vnode() that gets the fs_vnode_ops of the node. That is needed for a layered filesystem to be able to construct a full fs_vnode out of a volume/inode pair. * Adapt places where get_vnode is used. Sadly this is a C API and we can't just use a default NULL for that argument. * Introduce a flag B_VNODE_WANTS_OVERLAY_SUB_NODE that can be returned in the flags field of a fs get_vnode call. A filesystem can use this flag to indicate that it doesn't support the full set of fs features (attributes, write support) and it'd like to have unsupported calls emulated by an overlay sub node. * Add a perliminary overlay filesystem that emulates file attributes using files on a filesystem where attributes aren't supported. It does currently only support reading attributes/attribute directories though. All other calls are just passed through to the super filesystem. * Adjust places where a HAS_FS_CALL() is taken as a guarantee that the operation is supported. For the overlay filesystem we may later return a B_UNSUPPORTED, so make sure that in that case proper fallback options are taken. * Make the iso9660 filesystem request overlay sub nodes. This can be fine tuned later to only trigger where there are features on a CD that need emulation at all. If you happened to know the attribute file format and location you could build an iso with read-only attribute support now. Note that this won't be enough to get a bootable iso-only image as the query and index support is yet missing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29177 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d8428e0 |
|
06-Nov-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Changed to use Volume::InodeSize() over sizeof(ext2_inode) as described in ticket #2707. Thanks Adrian! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28536 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2293ed69 |
|
16-Jul-2008 |
Michael Lotz <mmlr@mlotz.ch> |
Add missing string.h that would otherwise soon break the build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26453 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c4d5cef0 |
|
03-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Now prints the disk size as part of the default name so that different volumes are easier to differentiate. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26241 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3b83493b |
|
02-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Cast block before shifting, as suggested by Marcus; it shouldn't have any actual consequences but looks more correct. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26217 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
13de3d07 |
|
02-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed wrong group block offset computation: the ext2_super_block::first_data_block must be used; the superblock offset doesn't matter if the block size is greater than 2KB. * Fixed block access beyond the 4GB limit - we need to cast the block to a 64 bit type in ext2_get_file_map() before shifting it. * Tested with various larger ext3 disks, and everything seems to work fine. * Added some optional debug output. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26213 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
63db34c8 |
|
01-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented a read-only ext2 file system. * It's not yet complete, doesn't support some ext2 stuff (like files over 4 GB), and might have some other bugs (I only tested it with a single 20 MB ext2 image). * To have a read/write ext2 file system, it would probably make more sense to port GNU sources (like ext2fs lib), and use that. But a small read-only ext2 file sytem doesn't hurt, I think, and I don't know if ext2fs lib would be feasible for kernel use (porting the file system from Linux directly would also be an alternative, but probably more work). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26187 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a130bab351822fb76ee1750cd4af6ba11ad70bbe |
|
08-May-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
ext2: fixes 64 bit warnings
|
#
46cf7a5a73679c6e4fde91710e4a4885242e49d1 |
|
14-Nov-2012 |
Przemysław Buczkowski <przemub@yahoo.pl> |
Fix typos: super block -> superblock (#8974) Signed-off-by: Przemysław Buczkowski <przemub@yahoo.pl> Signed-off-by: Matt Madia <mattmadia@gmail.com>
|
#
a735bdebb94ce14c72f56204f022038de7a49e2f |
|
31-Oct-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Align all filesystem relevant places to use B_UNSUPPORTED for unsupported instead of a mix of B_NOT_SUPPORTED and B_UNSUPPORTED. This allows checking for a specific error code. Probably one of those should be phased out... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43025 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
823a23829a5f584fbf019f74fa060ec7d3327418 |
|
18-Jan-2011 |
Jérôme Duval <korli@users.berlios.de> |
* support for setting volume label (bug #7100). * minor cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40243 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
79de91c19b619ef149482aee4ef30e7f301abd09 |
|
07-Jan-2011 |
Jérôme Duval <korli@users.berlios.de> |
* manages blockgroups unused_inodes when the feature is available. * BitmapBlock::FindMarked/FindUnmarked() tried to find a free bit at the end of a full bitmap. This fixes #7069. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40143 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d482c34e49ef2163e25b86cf61eee008c46fc50c |
|
05-Jan-2011 |
Jérôme Duval <korli@users.berlios.de> |
* added flex group, dirnlink and gdtchecksum features for ext4. * I reused crc_table.cpp from the UDF filesystem and switched it to have the reversed algorithm, then generated the table in CRCTable.cpp * added a binary search for extent tree leaves. * fixed a check in InodeAllocator::New(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40129 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
|
#
82b3bdd45c2e1ccf7b80729aa9b52926b95d232b |
|
06-Nov-2010 |
Jérôme Duval <korli@users.berlios.de> |
Stop the journal on Sync(), start the journal when a transaction is written. This helps with fs state on shutdown. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39325 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eb7aa0dafb0bba235428b5360e8e83a4f1203f4b |
|
04-Nov-2010 |
Jérôme Duval <korli@users.berlios.de> |
Volume: don't use a block allocator when mounting readonly. BitmapBlock: also use file system blocks, current type is off_t. Also added more trace. BlockAllocator: added an assert and more trace git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39302 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d5a0a8ff133f2d334f0ad021d4a67a2d60e0d7c |
|
01-Nov-2010 |
Jérôme Duval <korli@users.berlios.de> |
fixed warnings, added a better label for >1TB sized volumes git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39253 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
|
#
d8772e0c207a59d026580f29e2390d4030d1bec6 |
|
30-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
* added some support for 64bit feature: extended struct ext2_block_group, block number types changed from uint32 to off_t * added error traces, asserts * BitmapBlock::CheckUnmarked() and CheckMarked() computed a wrong remainingBits and mask git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39203 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
21451bd38d26f70152fad49252a7852f2e31b961 |
|
24-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
added some definitions for readonly features we already support the extra isize feature, so it's now added removed unused Inode::AttributeBlockReadAt() group_descriptor_size was previously a reserved field in the super block git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39125 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7babd0d5ea84ca13c0101f6a1b1e1c4d3c82efee |
|
24-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
added large files feature support git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39120 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
71bfbb7112412e1bf8a881078974b25ae833d4b4 |
|
17-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
added some logs in case of errors. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38992 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
de66992b72e683607689b6057760367bd9c78282 |
|
11-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
* added support for huge_file feature, untested (need a >2TB file) * actually checks for readonly features if mounting read-write * don't use a journal when mounting readonly * DataStream::_BlocksNeeded(): in case of double or triple indirects, compute the additional blocks needed using the difference between the old and new indirects blocks. This was resulting in a bad NumBlocks on an inode * BitmapBlock: mark methods missed an iteration when the startingBit was zero. Some blocks were then allocated two times (at most 32 for each allocation run). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38950 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
|
#
17aad616d2e30fb17ae710ded5daa0ea2ba76192 |
|
19-Apr-2010 |
Jérôme Duval <korli@users.berlios.de> |
Patch from Janito Ferreira Filho (bug #5706): limit the Inode ID to the maximum number of Inodes. Thanks! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36358 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82e4f70df1cee196def51bbe9de96bb87add2f16 |
|
13-Jan-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Volume::Unmount() never put the root node, and never deleted the volume's block cache. * Some cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35069 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
21faca8429194aa72a03af8e0a926a173d8a8e31 |
|
13-Mar-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Of course I messed it up; now ext2 doesn't crash anymore when I mount something it does support. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29511 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
431a51cc9143c5abf87efa933964f9f8ea37045f |
|
14-Mar-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added the new incompatible features of ext4. * Now correctly only check for the incompatible features we do understand, not for the ones we don't. Ie. we won't mount ext4 partitions anymore that are using extents. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29510 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
49004dc730f842ea3c162b56dee63696c51d17c7 |
|
19-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Remove the additional fs_vnode_ops arugment from get_vnode() again as it's not needed at all when used as intended. Thanks Ingo for the explanation on how this is intended to work. Adjusted the overlay fs accordingly and updated/reverted the changes to the other filesystems. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29250 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
00405f2286fd370a0bd264d0bbac0cfa120e7646 |
|
09-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Add an additional argument to get_vnode() that gets the fs_vnode_ops of the node. That is needed for a layered filesystem to be able to construct a full fs_vnode out of a volume/inode pair. * Adapt places where get_vnode is used. Sadly this is a C API and we can't just use a default NULL for that argument. * Introduce a flag B_VNODE_WANTS_OVERLAY_SUB_NODE that can be returned in the flags field of a fs get_vnode call. A filesystem can use this flag to indicate that it doesn't support the full set of fs features (attributes, write support) and it'd like to have unsupported calls emulated by an overlay sub node. * Add a perliminary overlay filesystem that emulates file attributes using files on a filesystem where attributes aren't supported. It does currently only support reading attributes/attribute directories though. All other calls are just passed through to the super filesystem. * Adjust places where a HAS_FS_CALL() is taken as a guarantee that the operation is supported. For the overlay filesystem we may later return a B_UNSUPPORTED, so make sure that in that case proper fallback options are taken. * Make the iso9660 filesystem request overlay sub nodes. This can be fine tuned later to only trigger where there are features on a CD that need emulation at all. If you happened to know the attribute file format and location you could build an iso with read-only attribute support now. Note that this won't be enough to get a bootable iso-only image as the query and index support is yet missing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29177 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d8428e02308170ca56951215da3a4027d9c5a35 |
|
06-Nov-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Changed to use Volume::InodeSize() over sizeof(ext2_inode) as described in ticket #2707. Thanks Adrian! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28536 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2293ed6941a7bb7f2b8527778fa004cd280c0e38 |
|
16-Jul-2008 |
Michael Lotz <mmlr@mlotz.ch> |
Add missing string.h that would otherwise soon break the build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26453 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c4d5cef0c6efb959ec8ae8a3cc3d47ed13cc0223 |
|
03-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Now prints the disk size as part of the default name so that different volumes are easier to differentiate. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26241 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3b83493b1020897c0f4559c2196f8450cf730a6e |
|
02-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Cast block before shifting, as suggested by Marcus; it shouldn't have any actual consequences but looks more correct. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26217 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
13de3d07679ac012dcb2f247d615073dd8f56c2f |
|
02-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed wrong group block offset computation: the ext2_super_block::first_data_block must be used; the superblock offset doesn't matter if the block size is greater than 2KB. * Fixed block access beyond the 4GB limit - we need to cast the block to a 64 bit type in ext2_get_file_map() before shifting it. * Tested with various larger ext3 disks, and everything seems to work fine. * Added some optional debug output. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26213 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
63db34c816c7067b251f03c50286d594ceac3cc2 |
|
01-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented a read-only ext2 file system. * It's not yet complete, doesn't support some ext2 stuff (like files over 4 GB), and might have some other bugs (I only tested it with a single 20 MB ext2 image). * To have a read/write ext2 file system, it would probably make more sense to port GNU sources (like ext2fs lib), and use that. But a small read-only ext2 file sytem doesn't hurt, I think, and I don't know if ext2fs lib would be feasible for kernel use (porting the file system from Linux directly would also be an alternative, but probably more work). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26187 a95241bf-73f2-0310-859d-f6bbb57e9c96
|