History log of /haiku/src/tests/system/kernel/file_corruption/fs/File.cpp
Revision Date Author Comments
# 539ec8ff 22-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* File::_UpdateLevelInfos(): Fixed child count computation. Was incorrect (0)
for multiple of kFileBlockMaxCount block counts.
* File::_GrowTree(): The inner loop of the level addition part was bogus.
Apparently I never tested with files >= 2 MB before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37683 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f6bf756 21-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Resize(): Resize the file cache before trying to fill the added space with
zeroes.
* Compute and propagate the check sums of the written file data to the
underlying device.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37641 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f9dda9f 20-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved Block implementation to its own source file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37633 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8794d8c4 20-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Volume::Create{File,Directory,SymLink}():
- Simplified by using the new common _CreateNode(). Changed the constructors
slightly -- the block index is now set via a separate SetBlockIndex()
method.
- The block allocated for the node was not cleared. At least for directories
that is required, though.
* Added attribute support:
- Refactored/extended {open,create}_file() and DirCookie a bit, so they can
also be used for attributes/attribute directories.
- Implemented all relevant attribute FS hooks.
- Node::DeletingNode(): Changed interface (it creates the transaction(s) as
needed, now and doesn't return the error code anymore. The base class
implementation frees the attribute directory, the Directory implementation
also unlinks all entries and frees the entry tree.
* checksumfs_write_stat(): B_STAT_MODE was not handled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e8282312 19-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added node monitoring support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37601 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b53c2ba 19-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented hooks write_fs_info(), sync(), set_flags(), fsync(), access().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37595 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5b3d7898 18-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

File::GetFileVecs():
* Added debug output.
* Rounding up the size argument could cause an overflow. Use uint64 and block
indexes, now.
* The iteration index wasn't incremented in the main loop.
* The in-block index was ignored when filling the first vector. Shouldn't
really matter since we pass back complete blocks only, so the file map
should never supply an unaligned offset, but anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37573 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 87c30de7 13-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added a File class for representing regular files. We use a simple block tree
for the data management. Reading/writing (using file cache and file map) is
implemented, but not exactly well tested yet.
* Renamed SymLink::{Read,Write}() to {Read,Write}SymLink().
* Implemented FS hooks write_stat(), create(), read(), write(), io().
* Added O_TRUNC support to open() hook.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37507 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 539ec8ff1e62c970b91a4260cad0067234f04848 22-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* File::_UpdateLevelInfos(): Fixed child count computation. Was incorrect (0)
for multiple of kFileBlockMaxCount block counts.
* File::_GrowTree(): The inner loop of the level addition part was bogus.
Apparently I never tested with files >= 2 MB before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37683 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f6bf75670b771eaed5b82c6b90829e950aef3d6 21-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Resize(): Resize the file cache before trying to fill the added space with
zeroes.
* Compute and propagate the check sums of the written file data to the
underlying device.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37641 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f9dda9f00200c24373c4e90911605e013d42afb 20-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved Block implementation to its own source file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37633 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8794d8c48f3c595cf42a9ae36fe661e38c019f34 20-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Volume::Create{File,Directory,SymLink}():
- Simplified by using the new common _CreateNode(). Changed the constructors
slightly -- the block index is now set via a separate SetBlockIndex()
method.
- The block allocated for the node was not cleared. At least for directories
that is required, though.
* Added attribute support:
- Refactored/extended {open,create}_file() and DirCookie a bit, so they can
also be used for attributes/attribute directories.
- Implemented all relevant attribute FS hooks.
- Node::DeletingNode(): Changed interface (it creates the transaction(s) as
needed, now and doesn't return the error code anymore. The base class
implementation frees the attribute directory, the Directory implementation
also unlinks all entries and frees the entry tree.
* checksumfs_write_stat(): B_STAT_MODE was not handled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37626 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e828231248036363167313f7cad872c2bb5676e4 19-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added node monitoring support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37601 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b53c2ba4f0b774030e369fc2ec522309b12d1f7 19-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented hooks write_fs_info(), sync(), set_flags(), fsync(), access().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37595 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5b3d789879bdcb4e7abc58d8f43726722ab6b2a9 18-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

File::GetFileVecs():
* Added debug output.
* Rounding up the size argument could cause an overflow. Use uint64 and block
indexes, now.
* The iteration index wasn't incremented in the main loop.
* The in-block index was ignored when filling the first vector. Shouldn't
really matter since we pass back complete blocks only, so the file map
should never supply an unaligned offset, but anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37573 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 87c30de7897d6a056d56edeb149e4d04b70db7be 13-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added a File class for representing regular files. We use a simple block tree
for the data management. Reading/writing (using file cache and file map) is
implemented, but not exactly well tested yet.
* Renamed SymLink::{Read,Write}() to {Read,Write}SymLink().
* Implemented FS hooks write_stat(), create(), read(), write(), io().
* Added O_TRUNC support to open() hook.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37507 a95241bf-73f2-0310-859d-f6bbb57e9c96