From e07a4b3be0ae6c4e912415af093a97b30c1d01a8 Mon Sep 17 00:00:00 2001 From: "Bruno G. Albuquerque" Date: Sat, 23 Aug 2008 22:16:12 +0000 Subject: [PATCH] - Correct the index number when calling _RemoveSmallDat() with an index. This may be masking out a different bug. - This fixes part of bug #2614. It may even fix all of it but I have to test. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27180 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/bfs/Inode.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/bfs/Inode.cpp b/src/add-ons/kernel/file_systems/bfs/Inode.cpp index 20129d3ded..aa70c6f559 100644 --- a/src/add-ons/kernel/file_systems/bfs/Inode.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Inode.cpp @@ -632,7 +632,12 @@ Inode::_RemoveSmallData(Transaction& transaction, NodeGetter& nodeGetter, return B_ENTRY_NOT_FOUND; nodeGetter.MakeWritable(transaction); - status_t status = _RemoveSmallData(node, item, index); + + // TODO(bga): It seems that the first item in the small data section is not + // a nomela attribute (for example, it does not have a name). We take this + // into account and decrement index before passing it along. Although this + // fix one bug, it may be as well just masking out a different bug. + status_t status = _RemoveSmallData(node, item, index - 1); if (status == B_OK) status = WriteBack(transaction);