* Fixed the bfs_write() error code for directories as suggested by Jerome.

* Removed a few superfluous checks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26191 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2008-07-01 11:42:51 +00:00
parent 25f758586b
commit 0c48c43777
@@ -1179,9 +1179,7 @@ bfs_read(fs_volume *_volume, fs_vnode *_node, void *_cookie, off_t pos,
if (!inode->HasUserAccessableStream()) {
*_length = 0;
if (inode->IsDirectory())
RETURN_ERROR(B_IS_A_DIRECTORY);
RETURN_ERROR(B_BAD_VALUE);
return inode->IsDirectory() ? B_IS_A_DIRECTORY : B_BAD_VALUE;
}
return inode->ReadAt(pos, (uint8 *)buffer, _length);
@@ -1201,7 +1199,7 @@ bfs_write(fs_volume *_volume, fs_vnode *_node, void *_cookie, off_t pos,
if (!inode->HasUserAccessableStream()) {
*_length = 0;
RETURN_ERROR(B_BAD_VALUE);
return inode->IsDirectory() ? B_IS_A_DIRECTORY : B_BAD_VALUE;
}
file_cookie *cookie = (file_cookie *)_cookie;
@@ -1475,8 +1473,6 @@ bfs_read_dir(fs_volume *_volume, fs_vnode *_node, void *_cookie,
FUNCTION();
TreeIterator *iterator = (TreeIterator *)_cookie;
if (iterator == NULL)
RETURN_ERROR(B_BAD_VALUE);
uint16 length;
ino_t id;
@@ -1507,9 +1503,6 @@ bfs_rewind_dir(fs_volume * /*_volume*/, fs_vnode * /*node*/, void *_cookie)
FUNCTION();
TreeIterator *iterator = (TreeIterator *)_cookie;
if (iterator == NULL)
RETURN_ERROR(B_BAD_VALUE);
return iterator->Rewind();
}
@@ -1525,12 +1518,7 @@ bfs_close_dir(fs_volume * /*_volume*/, fs_vnode * /*node*/, void * /*_cookie*/)
static status_t
bfs_free_dir_cookie(fs_volume *_volume, fs_vnode *node, void *_cookie)
{
TreeIterator *iterator = (TreeIterator *)_cookie;
if (iterator == NULL)
RETURN_ERROR(B_BAD_VALUE);
delete iterator;
delete (TreeIterator *)_cookie;
return B_OK;
}