diff --git a/src/add-ons/kernel/file_systems/bfs/Jamfile b/src/add-ons/kernel/file_systems/bfs/Jamfile index f594463c9f..d10f47a007 100644 --- a/src/add-ons/kernel/file_systems/bfs/Jamfile +++ b/src/add-ons/kernel/file_systems/bfs/Jamfile @@ -28,6 +28,9 @@ UsePrivateKernelHeaders ; UsePrivateHeaders [ FDirName kernel disk_device_manager ] ; UsePrivateHeaders shared storage ; +# TODO: temporary solution as long as there is no public I/O requests API +SubDirHdrs $(HAIKU_TOP) src system kernel device_manager ; + KernelAddon bfs : bfs_disk_system.cpp BlockAllocator.cpp diff --git a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp index b1a23f1b18..768c6825d1 100644 --- a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp @@ -16,6 +16,10 @@ #include "bfs_control.h" #include "bfs_disk_system.h" +// TODO: temporary solution as long as there is no public I/O requests API +#ifndef BFS_SHELL +# include "io_requests.h" +#endif #define BFS_IO_SIZE 65536 @@ -449,8 +453,10 @@ bfs_io(fs_volume* _volume, fs_vnode* _node, void* _cookie, io_request* request) Volume* volume = (Volume*)_volume->private_volume; Inode* inode = (Inode*)_node->private_node; - if (volume->IsReadOnly()) +#ifndef BFS_SHELL + if (request->IsWrite() && volume->IsReadOnly()) return B_READ_ONLY_DEVICE; +#endif if (inode->FileCache() == NULL) RETURN_ERROR(B_BAD_VALUE);