History log of /haiku/src/add-ons/kernel/file_systems/bfs/ToDo
Revision Date Author Comments
# d6db242b 05-Nov-2008 Axel Dörfler <axeld@pinc-software.de>

Brought ToDo file more or less up to date again.


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


# 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 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


# fd88c054 29-May-2004 Axel Dörfler <axeld@pinc-software.de>

Added a possible optimization to the list.


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


# 4a9d9dfa 18-Jun-2003 Axel Dörfler <axeld@pinc-software.de>

Added new RecursiveLock and RecursiveLocker classes.
Added file system global locking around creating, deleting, and renaming
inodes - that's not nice, but since we have only sequential journal access,
it won't hurt concurrency much. The locks are needed to prevent certain
things from happening like two threads could theoretically create the same
file twice (one of them would have failed, but relatively late in the process).
Anyway, a better locking scheme will be implemented at a later date, but maybe
not for R1.
Small cleanup.


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


# 8ea8d0c2 31-May-2003 Axel Dörfler <axeld@pinc-software.de>

Fixed queries a bit more (maybe even completely...). In several situations,
the old attribute value wasn't evaluated at all.
Also, Index::Update() got a type code of zero, instead of the real value
in situations where this didn't make any sense.
Minor cleanup in kernel_interface.cpp.
New method Volume::CheckForLiveQuery() that checks if there is a live query
depending on the specified attribute - not yet implemented, but already used;
always returns "true" right now, which doesn't cause any harm but reducing
the speed lightly.


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


# a9aa5ee1 27-May-2003 Axel Dörfler <axeld@pinc-software.de>

Implemented bfs_setflags().


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


# 470a6078 25-May-2003 Axel Dörfler <axeld@pinc-software.de>

Updated the ToDo list; thanks to Ingo I know now a little bit more about
float/double queries :-)


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


# bfa7190f 19-Mar-2003 Axel Dörfler <axeld@pinc-software.de>

Added a point.


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


# 528a4119 05-Dec-2002 Axel Dörfler <axeld@pinc-software.de>

Updated ToDo file.


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


# c113e0ec 17-Nov-2002 Axel Dörfler <axeld@pinc-software.de>

Added another ToDo item...


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


# c3589807 22-Oct-2002 Axel Dörfler <axeld@pinc-software.de>

Updated tasks to do.


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


# b98d9a33 06-Sep-2002 Axel Dörfler <axeld@pinc-software.de>

Fixed two bugs in the block allocator:
- the maximum number of blocks a block_run can cover is 65535 not 65536
- allocations over a block boundary in the block bitmap always failed due
to a incorrectly handled status

Both bugs could prevent BFS to create the VM swap file which led BeOS to
stop booting under certain circumstances.


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


# ae38c6e9 12-Aug-2002 Axel Dörfler <axeld@pinc-software.de>

Fixed a bug that could lead to the wrong last_modified time in an inode;
bfs_close() updated the last_modified time & index, but it didn't write
the inode back to disk.
Furthermore, bfs_write() should have already updated the last_modified
time, not bfs_close.


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


# beddff0f 09-Aug-2002 Axel Dörfler <axeld@pinc-software.de>

Replaced opendir.c with directory.c, implemented chdir(), fchdir(), and
getcwd().
Introduced new xyz(int fd, char *path, ...) style of functions for
sys_setcwd(), and sys_write_stat().
Added missing sys_fstat(). Removed duplicated prototypes in syscalls.h
Fixed some minor bugs.


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


# c42ee134 07-Aug-2002 Axel Dörfler <axeld@pinc-software.de>

Initial revision


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


# d6db242bbd6d606fd5babf84355365096c528620 05-Nov-2008 Axel Dörfler <axeld@pinc-software.de>

Brought ToDo file more or less up to date again.


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


# fb02804a89b1100c0f20c3e3c28be28215103c44 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 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


# fd88c05421f55c3c4d04505fef8e0c6c919e0e6e 29-May-2004 Axel Dörfler <axeld@pinc-software.de>

Added a possible optimization to the list.


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


# 4a9d9dfa146df5d8a5b0c118501e3662dcd02239 18-Jun-2003 Axel Dörfler <axeld@pinc-software.de>

Added new RecursiveLock and RecursiveLocker classes.
Added file system global locking around creating, deleting, and renaming
inodes - that's not nice, but since we have only sequential journal access,
it won't hurt concurrency much. The locks are needed to prevent certain
things from happening like two threads could theoretically create the same
file twice (one of them would have failed, but relatively late in the process).
Anyway, a better locking scheme will be implemented at a later date, but maybe
not for R1.
Small cleanup.


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


# 8ea8d0c2bb1270149813f29b7cda0fba06f2210a 31-May-2003 Axel Dörfler <axeld@pinc-software.de>

Fixed queries a bit more (maybe even completely...). In several situations,
the old attribute value wasn't evaluated at all.
Also, Index::Update() got a type code of zero, instead of the real value
in situations where this didn't make any sense.
Minor cleanup in kernel_interface.cpp.
New method Volume::CheckForLiveQuery() that checks if there is a live query
depending on the specified attribute - not yet implemented, but already used;
always returns "true" right now, which doesn't cause any harm but reducing
the speed lightly.


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


# a9aa5ee181fca87633fd02f5b966eaf9e01d7aca 27-May-2003 Axel Dörfler <axeld@pinc-software.de>

Implemented bfs_setflags().


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


# 470a60786ea8e136bc3664687eddd7e86eb8504b 25-May-2003 Axel Dörfler <axeld@pinc-software.de>

Updated the ToDo list; thanks to Ingo I know now a little bit more about
float/double queries :-)


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


# bfa7190f0248c9836cca39db51d82d112f5123c7 19-Mar-2003 Axel Dörfler <axeld@pinc-software.de>

Added a point.


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


# 528a4119731527d04543c0f91952b19220a34a2b 05-Dec-2002 Axel Dörfler <axeld@pinc-software.de>

Updated ToDo file.


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


# c113e0ecfd4c3d034b9432cb02bc42a23cfb0cfb 17-Nov-2002 Axel Dörfler <axeld@pinc-software.de>

Added another ToDo item...


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


# c35898079f9c12866ae00e0735102dec64e3495e 22-Oct-2002 Axel Dörfler <axeld@pinc-software.de>

Updated tasks to do.


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


# b98d9a335ae4abd0200a4c03a5d07c8004ba07e7 06-Sep-2002 Axel Dörfler <axeld@pinc-software.de>

Fixed two bugs in the block allocator:
- the maximum number of blocks a block_run can cover is 65535 not 65536
- allocations over a block boundary in the block bitmap always failed due
to a incorrectly handled status

Both bugs could prevent BFS to create the VM swap file which led BeOS to
stop booting under certain circumstances.


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


# ae38c6e93d625dc75f719411c39ab57557ce81b7 12-Aug-2002 Axel Dörfler <axeld@pinc-software.de>

Fixed a bug that could lead to the wrong last_modified time in an inode;
bfs_close() updated the last_modified time & index, but it didn't write
the inode back to disk.
Furthermore, bfs_write() should have already updated the last_modified
time, not bfs_close.


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


# beddff0f569d79109e45afd1cde91c4b254234de 09-Aug-2002 Axel Dörfler <axeld@pinc-software.de>

Replaced opendir.c with directory.c, implemented chdir(), fchdir(), and
getcwd().
Introduced new xyz(int fd, char *path, ...) style of functions for
sys_setcwd(), and sys_write_stat().
Added missing sys_fstat(). Removed duplicated prototypes in syscalls.h
Fixed some minor bugs.


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


# c42ee13401be80c431846910959d587949a1ad10 07-Aug-2002 Axel Dörfler <axeld@pinc-software.de>

Initial revision


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