#
0f90b347 |
| 02-Sep-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
BFS: Terminology cleanup in BlockAllocator.
* Rename NumBlocks to NumBitmapBlocks, as this is the number of blocks in the block bitmap, not on the filesystem.
* Rename AllocationGroup::Block(i
BFS: Terminology cleanup in BlockAllocator.
* Rename NumBlocks to NumBitmapBlocks, as this is the number of blocks in the block bitmap, not on the filesystem.
* Rename AllocationGroup::Block(index) to Chunk(index), as it refers to a "chunk" of 32 bits within the bitmap block. This gives us one less usage of the term "block" in this file.
* Remove superfluous comment.
No functional change intended.
Change-Id: If736387fcd9963a4a74bb0dde12ede81da5502f3 Reviewed-on: https://review.haiku-os.org/c/haiku/+/8185 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Axel Dörfler <axeld@pinc-software.de> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
show more ...
|
#
bd02d81c |
| 30-Jun-2021 |
David Sebek <dasebek@gmail.com> |
Fix trim-related issues
Fixes: * Use uint64 instead of off_t when handling offset and size of the trimmed range in the fs_trim_data structure * BlockAllocator::Trim: Correct the size of a buffer *
Fix trim-related issues
Fixes: * Use uint64 instead of off_t when handling offset and size of the trimmed range in the fs_trim_data structure * BlockAllocator::Trim: Correct the size of a buffer * ram_disk, mmc: Do not trim past device capacity
Improvements: * BlockAllocator::Trim: Because the received offset and size are ignored by BFS (the functionality is not implemented yet), return B_UNSUPPORTED if the range does not cover the whole partition * ram_disk, mmc: More accurate calculation of the number of trimmed bytes * devfs: Add a uint64 version of translate_partition_access()
Change-Id: I24f4c08674f123ad33a5fef6e28996a4ada6ff0d Reviewed-on: https://review.haiku-os.org/c/haiku/+/4155 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
show more ...
|
#
3d43a905 |
| 30-Aug-2020 |
John Scipione <jscipione@gmail.com> |
bfs: Enable logging on DEBUG build
Fix DEBUG build errors by using B_PRI macros in BlockAllocator.cpp, CheckVisitor.cpp, Inode.cpp, Journal.cpp, and kernel_interface.cpp
Add optional type parameter
bfs: Enable logging on DEBUG build
Fix DEBUG build errors by using B_PRI macros in BlockAllocator.cpp, CheckVisitor.cpp, Inode.cpp, Journal.cpp, and kernel_interface.cpp
Add optional type parameter from BlockAllocator::IsValidBlockRun() and actually PRINT it, type parameter is already optional on BlockAllocator::CheckBlockRun().
Remove a couple of casts as we are printing the expected type, int32.
Cast mode_t to (unsigned int) and use %u because 32-bit Haiku didn't like B_PRIu32.
Verified to compile on both regular and DEBUG builds on both 32-bit and 64-bit.
Change-Id: I8bb39afd400768b7f69d36384974f0b91b3ef48c Reviewed-on: https://review.haiku-os.org/c/haiku/+/3184 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com> Reviewed-by: John Scipione <jscipione@gmail.com>
show more ...
|
#
aa775038 |
| 05-Jul-2012 |
ahenriksson <sausageboy@gmail.com> |
bfs: split checkfs code into FileSystemVisitor and CheckVisitor
Another FileSystemVisitor implementation will be used for resizing
Change-Id: I2d5f47dcbefb4c76834487b194a99c6f5ae7de50 Reviewed-on:
bfs: split checkfs code into FileSystemVisitor and CheckVisitor
Another FileSystemVisitor implementation will be used for resizing
Change-Id: I2d5f47dcbefb4c76834487b194a99c6f5ae7de50 Reviewed-on: https://review.haiku-os.org/c/923 Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
show more ...
|
#
99086aa3 |
| 14-Aug-2013 |
Axel Dörfler <axeld@pinc-software.de> |
trim: Target SCSI UNMAP command instead of WRITE SAME.
* The UNMAP command is theoretically much faster, as it can get many block ranges instead of just a single range. * Furthermore, the ATA TRIM
trim: Target SCSI UNMAP command instead of WRITE SAME.
* The UNMAP command is theoretically much faster, as it can get many block ranges instead of just a single range. * Furthermore, the ATA TRIM command resembles it much better. * Therefore, fs_trim_data now gets an array of ranges, and we use SCSI UNMAP to trim. * Updated BFS code to collect array ranges to fully support the new fs_trim_data possibilities.
show more ...
|
#
0a0ba4b5 |
| 04-Aug-2013 |
Axel Dörfler <axeld@pinc-software.de> |
Added B_TRIM_DEVICE support to BFS.
* It currently ignores the offset/size, though, and always trims everything. * Now only SCSI support is missing.
|
#
25a7b01d |
| 05-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merge branch 'master' into package-management
Additional changes: * Add src/system/kernel/lib/zlib, which builds a kernel version of zlib, needed by packagefs. * BuildFeatures: Add a build feature
Merge branch 'master' into package-management
Additional changes: * Add src/system/kernel/lib/zlib, which builds a kernel version of zlib, needed by packagefs. * BuildFeatures: Add a build feature "gcc2" to allow for easier checks. * Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter is not needed and prevents building for the build platform. * zlib/zutil.h: Fix gcc 2 build. We really should use the external package instead.
Conflicts: .gitignore build/jam/BuildSetup build/jam/FileRules build/jam/FloppyBootImage build/jam/HaikuImage build/jam/ImageRules build/jam/KernelRules build/jam/NetBootArchive build/jam/OptionalBuildFeatures build/jam/OptionalLibPackages build/jam/OptionalPackageDependencies build/jam/OptionalPackages build/scripts/build_haiku_image configure data/bin/installoptionalpackage data/system/boot/Bootscript headers/os/app/Message.h headers/os/package/PackageInfo.h headers/os/package/PackageInfoAttributes.h headers/os/package/PackageInfoSet.h headers/os/package/PackageRoster.h headers/os/package/PackageVersion.h headers/os/package/hpkg/PackageInfoAttributeValue.h headers/os/storage/FindDirectory.h headers/os/storage/Node.h headers/os/support/StringList.h headers/private/system/directories.h src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile src/add-ons/kernel/file_systems/packagefs/AttributeIndex.cpp src/add-ons/kernel/file_systems/packagefs/Jamfile src/add-ons/kernel/file_systems/packagefs/Package.cpp src/add-ons/kernel/file_systems/packagefs/Package.h src/add-ons/kernel/file_systems/packagefs/PackageDomain.cpp src/add-ons/kernel/file_systems/packagefs/PackageDomain.h src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp src/add-ons/kernel/file_systems/packagefs/PackageNode.h src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp src/add-ons/kernel/file_systems/packagefs/Version.cpp src/add-ons/kernel/file_systems/packagefs/Version.h src/add-ons/kernel/file_systems/packagefs/Volume.cpp src/add-ons/kernel/file_systems/packagefs/Volume.h src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp src/add-ons/kernel/file_systems/userlandfs/shared/driver_settings.c src/apps/deskbar/BarApp.cpp src/apps/deskbar/BarMenuBar.cpp src/apps/deskbar/BarMenuBar.h src/apps/deskbar/BarView.cpp src/apps/deskbar/BarView.h src/apps/deskbar/BarWindow.cpp src/apps/deskbar/BarWindow.h src/apps/deskbar/DeskbarMenu.cpp src/apps/deskbar/DeskbarMenu.h src/apps/deskbar/DeskbarUtils.cpp src/apps/deskbar/DeskbarUtils.h src/apps/deskbar/ExpandoMenuBar.cpp src/apps/deskbar/ExpandoMenuBar.h src/apps/deskbar/TeamMenu.cpp src/apps/processcontroller/ProcessController.cpp src/apps/remotedesktop/RemoteDesktop.cpp src/bin/bash/config-top.h src/bin/finddir.c src/bin/package/Jamfile src/bin/package/command_add.cpp src/bin/package/command_create.cpp src/bin/package/command_list.cpp src/bin/package_repo/command_list.cpp src/bin/pkgman/command_refresh.cpp src/build/libbe/support/Jamfile src/build/libpackage/Jamfile src/build/libroot/Jamfile src/build/libroot/fs.cpp src/build/libroot/remapped_functions.h src/kits/locale/MutableLocaleRoster.cpp src/kits/opengl/GLRendererRoster.cpp src/kits/package/PackageInfo.cpp src/kits/package/PackageInfoSet.cpp src/kits/package/PackageRoster.cpp src/kits/package/PackageVersion.cpp src/kits/package/RepositoryCache.cpp src/kits/package/hpkg/PackageWriterImpl.cpp src/kits/package/hpkg/ReaderImplBase.cpp src/kits/package/hpkg/WriterImplBase.cpp src/kits/print/PrintTransport.cpp src/kits/print/Printer.cpp src/kits/screensaver/ScreenSaverRunner.cpp src/kits/support/StringList.cpp src/kits/tracker/ContainerWindow.cpp src/kits/tracker/DeskWindow.cpp src/kits/tracker/PoseView.cpp src/libs/print/libprint/Transport.cpp src/preferences/printers/AddPrinterDialog.cpp src/preferences/screensaver/ScreenSaverWindow.cpp src/servers/debug/DebugServer.cpp src/servers/input/AddOnManager.cpp src/servers/media_addon/MediaAddonServer.cpp src/system/boot/Jamfile src/system/boot/loader/Jamfile src/system/boot/loader/loader.cpp src/system/boot/loader/vfs.cpp src/system/kernel/fs/vfs.cpp src/system/kernel/fs/vfs_boot.cpp src/system/libroot/os/find_directory.cpp src/system/runtime_loader/runtime_loader.cpp src/tools/package/Jamfile
show more ...
|
#
ce17af69 |
| 31-Mar-2012 |
Axel Dörfler <axeld@pinc-software.de> |
Implemented repairing index b+trees.
* There are now two passes in case a corrupted index tree has been found. * The second pass will clear the affected indices at first, and will then walk over a
Implemented repairing index b+trees.
* There are now two passes in case a corrupted index tree has been found. * The second pass will clear the affected indices at first, and will then walk over all inodes again to fill them. * As a side effect, this will also defragment the indices; ie. the same mechanism could be used for this some day.
show more ...
|
#
b81ce430 |
| 30-Mar-2012 |
Axel Dörfler <axeld@pinc-software.de> |
Made fLock a recursive lock instead of a mutex.
* This should fix bug #8069.
|
#
5edde94c |
| 06-Mar-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* checkfs is now working again; I couldn't test my earlier changes because I had no time left, but I didn't want to lose them either. * This fixes bug #5536, sorry for the inconvenience.
git-svn-
* checkfs is now working again; I couldn't test my earlier changes because I had no time left, but I didn't want to lose them either. * This fixes bug #5536, sorry for the inconvenience.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35770 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
d501707d |
| 03-Mar-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed the cookie field of the check_control structure; that really was a stupid idea. Instead, the already existing fCheckCookie member is used. * bfs_ioctl() now accesses all userland buffers
* Removed the cookie field of the check_control structure; that really was a stupid idea. Instead, the already existing fCheckCookie member is used. * bfs_ioctl() now accesses all userland buffers safely, this should help with #3264, and move the crash where it belongs. * Changes not yet tested; they only affect checkfs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35743 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
aeb099b3 |
| 20-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a very simple way to fragment your disk.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33674 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b5a51254 |
| 26-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Don't use Inode::Remove() when the inode could not be opened, because it actually relies on that. * Instead, _RemoveInvalidNode() now manipulates the parent tree manually.
git-svn-id: file:///s
* Don't use Inode::Remove() when the inode could not be opened, because it actually relies on that. * Instead, _RemoveInvalidNode() now manipulates the parent tree manually.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31774 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
84ce48c2 |
| 26-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* checkfs should now also remove unaccessible files. Not yet tested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31771 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3e69a3c2 |
| 26-Jun-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* BFS allocated always full allocation groups in the bitmap, even if the last group was a partial one. This caused bug #3963 (Be's BFS didn't do that). * Added new BlockAllocator::CheckBlocks() tha
* BFS allocated always full allocation groups in the bitmap, even if the last group was a partial one. This caused bug #3963 (Be's BFS didn't do that). * Added new BlockAllocator::CheckBlocks() that does not depend on allocation group limits - this fixes the problematic check in BlockAllocator::_Initialize() to see if the super block, the block bitmap, and the log area are all allocated - this only worked if they all fit into the first allocation group (which happens only with partitions with more than 1 billion blocks, ie. 2 TB would already be problematic with a 2K block size).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31248 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
a0a1bf7f |
| 16-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Disabled the allocation group check again. * Fixed warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28171 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a8744b0e |
| 14-Oct-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Each allocation group now lazily maintains the largest free block separately, so that allocations can be directly fulfilled from that block without having to search for it. * This should furthe
* Each allocation group now lazily maintains the largest free block separately, so that allocations can be directly fulfilled from that block without having to search for it. * This should further improve the allocator's performance, but it could need more tuning (ie. when to rebuild the free block). * Added debugging code to check if the largest block is maintained correctly; it's currently turned on (DEBUG_ALLOCATION_GROUPS) which makes allocations actually pretty slow - I'll disable it again after it has been tested a bit more. * Added a "bfs_allocator_blocks" KDL command that allows you to show all tracing entries that affect a specific block (only available if BFS has been compiled with tracing support).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28111 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
02c8f6c8 |
| 02-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Coding style cleanups, no functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26728 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d06cc6e3 |
| 29-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Unmounting a volume didn't wait for the block allocator's initializer thread. * This fixed bug #2541.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26679 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
03fa417b |
| 07-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed the home-brewn locking classes in BFS besides the read/write lock (for now). * Inode::fSmallDataLock is now a recursive_lock, Journal::fLock is now a recursive_lock, too, Journal::fEntr
* Removed the home-brewn locking classes in BFS besides the read/write lock (for now). * Inode::fSmallDataLock is now a recursive_lock, Journal::fLock is now a recursive_lock, too, Journal::fEntriesLock is now a mutex, as is BPlusTree::fIteratorLock.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26298 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
797a92d8 |
| 07-Apr-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Made super block log handling endian-safe. * Made all debugging functions endian-safe. * Added tracing for log entries. * Added new KDL command "bfs_journal" to dump all pending log entries. * When
* Made super block log handling endian-safe. * Made all debugging functions endian-safe. * Added tracing for log entries. * Added new KDL command "bfs_journal" to dump all pending log entries. * When BFS_DEBUGGER_COMMANDS is defined, the LogEntry class will also track the transaction ID it belonged to. * The "bfs" KDL command now sets some useful debugger variables. * The "bfs_allocator" KDL command now accepts the group index as 3rd argument. * Renamed Journal::_TransactionListener() to _TransactionIdle(), as that's all it is for. * Removed TODO comment in Volume::WriteSuperBlock(), as it's actually not true.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24852 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
09c46ea8 |
| 15-Jan-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed bug in the BlockAllocator::Allocate() function which did not compute the bit offsets correctly if the last block of the whole bitmap was only a partial block. * Added new bfs_allocator K
* Fixed bug in the BlockAllocator::Allocate() function which did not compute the bit offsets correctly if the last block of the whole bitmap was only a partial block. * Added new bfs_allocator KDL command. * Renamed the KDL command bfsinode to bfs_inode. * Added "--help" argument to bfs_inode and bfs KDL commands. * Added more tracing in the block allocator. * Turned on the ASSERT() macro in non-debug builds. * Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23534 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
f41837b4 |
| 26-Feb-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* The AllocationGroup now has a field for its number of blocks, as well as public getter methods. * Fixed allocation problem of an incomplete last allocation group, as reported by Robert Szeleney
* The AllocationGroup now has a field for its number of blocks, as well as public getter methods. * Fixed allocation problem of an incomplete last allocation group, as reported by Robert Szeleney. * Minor cleanup, slightly improved comments, renamed private methods to have a leading '_'.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16507 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
fb02804a |
| 19-Nov-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Big update while moving over completely to the Haiku kernel: - Ported over BFS to the new cache API - Inode no longer inherits from CachedBlock, and therefore, no longer keeps the whole inode block
Big update while moving over completely to the Haiku kernel: - Ported over BFS to the new cache API - Inode no longer inherits from CachedBlock, and therefore, no longer keeps the whole inode block in memory. It now has a copy of the bfs_inode structure in memory instead. This has a number of advantages but also some disadvantages, so it might be reverted later, even if it's unlikely. - Added a NodeGetter class that can be used whenever the real block needs to be accessed (ie. for attributes) - Changed *transaction to &transaction where possible - Removed support for KEEP_WRONG_DIRENT_RECLEN - Removed support for uncached file access since that's no longer needed - Fixed some endian issues in bfs_write_stat() - Removed the install BFS rules, since they don't make any sense anymore (unless you are running Haiku ;-))
Note, logged streams are not supported anymore right now. Also, the transaction code is pretty simple and slow - it will be improved later on. Attribute code is pretty much untested in the new environment.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10053 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
34cf473d |
| 04-May-2004 |
Axel Dörfler <axeld@pinc-software.de> |
BlockAllocator::CheckBlockRun() can now also check for non-allocated ranges. Fixed a possible endian problem in CheckBlockRun(), too.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7405 a952
BlockAllocator::CheckBlockRun() can now also check for non-allocated ranges. Fixed a possible endian problem in CheckBlockRun(), too.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7405 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|