#
425ac1b6 |
|
20-Jun-2023 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
refactor: Swap %Ld for %lld in all format usages * %Ld is an undocumented alias for %lld in glibc. * muslc doesn't implement it for this reason. * While we will likely never drop %Ld support, lets clean house and set a better example. Change-Id: Id46dad3104abae483e80cc5c05d1464d3ecd8030 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6636 Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
f9b218aa |
|
26-May-2020 |
Jérôme Duval <jerome.duval@gmail.com> |
file_systems: fs_read_link() doesn't use a user buffer introduced in hrev26728 and hrev54107. Change-Id: I3e98d54e829bcce559c43a8ee1abe4d889c0a571 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2819 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
e1b7c1c7 |
|
19-Apr-2020 |
Kyle Ambroff-Kao <kyle@ambroffkao.com> |
storage/SymLink: Fix Be API regression in ReadLink After this patch, "UnitTester BSymLink" passes. BSymLink::ReadLink() in BeOS would always return the length of the link unless an error occurred. Before this patch, Haiku instead seemed to emulate posix readlink() behavior, returning the number of bytes copied into the output buffer. BeOS also did not guarantee that the string written into the output buffer is NULL terminated if the output buffer cannot contain the entire link contents, but the Haiku implementation does since it is is a basic safety issue. This patch fixes this and updates the Haiku API docs to describe the behavior explicitly. Fixing this required changing behavior in bfs_read_link, which required changes in many more places. docs/user/storage/SymLink.dox: src/kits/storage/SymLink.cpp: * Don't return B_BUFFER_OVERFLOW if the provided buffer is not large enough to hold the link contents. * Update documentation to clearly describe behavior. src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp: * Change bfs_read_link() to always return the link length. This is called by common_read_link in the VFS, which is called by _kern_read_link(). src/add-ons/kernel/file_systems/btrfs/kernel_interface.cpp: src/add-ons/kernel/file_systems/exfat/kernel_interface.cpp: src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp: src/add-ons/kernel/file_systems/iso9660/kernel_interface.cpp: src/add-ons/kernel/file_systems/netfs/client/netfs.cpp: src/add-ons/kernel/file_systems/nfs/nfs_add_on.c: src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp: src/add-ons/kernel/file_systems/reiserfs/Iterators.cpp: src/add-ons/kernel/file_systems/reiserfs/Iterators.h: src/add-ons/kernel/file_systems/reiserfs/Volume.cpp: src/add-ons/kernel/file_systems/reiserfs/Volume.h: * Update the implementation of read_link for these filesystems. Some of them were incorrect, and some had just copied the posix behavior of bfs from before this patch. * Use user_memcpy in ext2_read_link() * Use user_memcpy in nfs fs_read_link() * Use user_memcpy in reiserfs StreamReader::_ReadIndirectItem and StreamReader::_ReadDirectItem * Remove unused method Volume::ReadObject in reiserfs. src/add-ons/kernel/file_systems/packagefs/nodes/UnpackingLeafNode.cpp: src/add-ons/kernel/file_systems/packagefs/package_links/PackageLinkSymlink.cpp: * Update UnpackingLeafNode::ReadSymlink and PackageSymLink::ReadSymLink() to set the bufferSize out parameter to the symlink length. Both of these are called by packagefs_read_symlink. * Use user_memcpy src/add-ons/kernel/file_systems/netfs/client/netfs.cpp: * netfs seems mostly unimplemented. Added a FIXME note for future implementers so that they know to implement the correct behavior. src/system/libroot/posix/unistd/link.c: * readlinkat() was just wrapping _kern_read_link() because before this patch it had expected posix behavior. But now it does not, so we need to return the number of bytes written to the output buffer. src/build/libroot/fs.cpp: * Update _kern_read_link() in the compatibility code to emulate the Haiku behavior on the host system. This is done by using an intermediate buffer that is guaranteed to fit the link contents and returning its length. The intermediate buffer is copied into the output buffer until there is no more room. src/tests/kits/storage/SymLinkTest.cpp: * This patch also resolves some test failures similar to those resolved in ee8cf35f0 which fixed tests for BNode. The tests were failing because Haiku's error checking is just better. BeOS allowed constructing a BSymLink with BSymLink(BDirectory*, const char*) with the entry name of "". The same is true of the equivilant SetTo() method. The BSymLink object will appear valid until you attempt to use it by, for example, calling the ReadLink method, which will return B_BAD_VALUE. Haiku does a more appropriate thing and returns B_ENTRY_NOT_FOUND, for this constructor and the equivilant SetTo(BDirectory*, const char*) method. This patch fixes these test assertions to match Haiku behavior. docs/develop/file_systems/overview.txt: * Add notes for future filesystem driver implementers to call this mistake when implementing fs_vnode_ops::read_symlink. docs/user/drivers/fs_interface.dox: * Fix documentation for fs_vnode_ops::read_symlink Change-Id: I8bcb8b2a0c9333059c84ace15844c32d4efeed9d Reviewed-on: https://review.haiku-os.org/c/haiku/+/2502 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
|
#
097bbc7f |
|
29-Apr-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
file_systems: Remove now-redundant bounds checks before file_cache_read(). Change-Id: Iafb7d188c7e7cb4406d924eb3354a7ede40c6641 Reviewed-on: https://review.haiku-os.org/c/1421 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Reviewed-by: Michael Lotz <mmlr@mlotz.ch>
|
#
38fa917c |
|
12-Aug-2018 |
Augustin Cavalier <waddlesplash@gmail.com> |
iso9660_shell: Use the fs_shell from src/tools; fix the build.
|
#
c3e68d8d |
|
11-May-2013 |
Jerome Duval <jerome.duval@gmail.com> |
cdda, fat, iso9660: clear tv_nsecs fields in the stat struct * devfs in fact doesn't provide a zeroed buffer.
|
#
6ea60bcd |
|
15-Apr-2012 |
Axel Dörfler <axeld@pinc-software.de> |
This must be a 64 bit computation for disks larger than 4GB. * This closes ticket #8460. * Patch from jahaiku, thanks!
|
#
d63f4274 |
|
18-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
added a file system call preallocate() as described in #6285, currently unused git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39006 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
533cba7e |
|
28-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
bonefish + axeld: * Reverted r31809 as it introduced a race condition; if the I/O request had been notified, it could already been deleted at that point. * Instead, we need to notify the request in each file system/driver that uses it. Added new notify_io_request() function that does that exactly. * Added a TODO comment to the userlandfs where the request notification needs a bit more thought. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31903 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
41b19806 |
|
28-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added support for the io() hook. Not yet tested. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30906 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f0c050f6 |
|
28-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30905 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
56b2feba |
|
27-May-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Add actual support for relocated directories. In case we hit a placeholder file pointing to a relocated directory, we now re-initialize the node we are initializing with the first entry of the pointed at directory. This ought to be the "." entry containing the proper flags, start block number and data length. As per the specs we do only keep the file id or alternate name of the placeholder and take everything else from the relocated directory. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30886 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
99d1bfb5 |
|
07-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The code in fs_walk() duplicates the one in ISOReadDir() mostly, and suffered from the same "associated file" problem as the latter. This now finally fixes bug #3861. This badly needs some cleanup. * Fixed a possible problem I introduced in ISOReadDir() (did not read the next block even if it should have). * Fixed warnings with debug output turned on. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30663 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
47a214de |
|
07-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* We now ignore associated files. This makes the double entries of bug #3861 disappear. * When parsing rock ridge attributes, we no longer stop when we encounter an unknown one. Instead, we just parse through until the end. The ISO image as part of #3861 also made this visible. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30655 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2a64cb11 |
|
05-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed two crashing bugs, one of them mentioned in ticket #3861: * ISOReadDirEnt() did happily read after the 2048 byte block. Now we check after having processed an entry if the position is on the 2048 block boundary, and skip to the next block directly. * fs_walk() assumed a 2 block set (and accessed memory therein), but only has access to a single block. I haven't looked at the specs, so I'm not really sure what the old code tried to achieve. In any case, it doesn't crash anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30640 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f47bff08 |
|
05-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Made the iso9660 file system buildable within the fs_shell (iso9660_shell). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30639 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
49004dc7 |
|
19-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Remove the additional fs_vnode_ops arugment from get_vnode() again as it's not needed at all when used as intended. Thanks Ingo for the explanation on how this is intended to work. Adjusted the overlay fs accordingly and updated/reverted the changes to the other filesystems. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29250 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a26c2439 |
|
14-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Adding volume ops to the overlay filesystem. * Remove the previous method of applying the overlay by flags. In the future the overlay can just be mounted as a filesystem layer. This is probably how layers were intended to work in the first place. * Move the filesystem module info and filesystem name from the fs_mount to the fs_volume structure. Filesystem layering is done by having multiple layered volumes and we want to be able to have a different fs per layer. * Adapt VFS code to this move. * Implement mounting layered filesystems. Specifying multiple filesystems separated by a colon on mount will cause the layers to be set up and the corresponding filesystems to be mounted at that layer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29199 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3e015617 |
|
13-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Request an overlay for the root vnode as well so attributes are available on the fs root as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29197 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
00405f22 |
|
09-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Add an additional argument to get_vnode() that gets the fs_vnode_ops of the node. That is needed for a layered filesystem to be able to construct a full fs_vnode out of a volume/inode pair. * Adapt places where get_vnode is used. Sadly this is a C API and we can't just use a default NULL for that argument. * Introduce a flag B_VNODE_WANTS_OVERLAY_SUB_NODE that can be returned in the flags field of a fs get_vnode call. A filesystem can use this flag to indicate that it doesn't support the full set of fs features (attributes, write support) and it'd like to have unsupported calls emulated by an overlay sub node. * Add a perliminary overlay filesystem that emulates file attributes using files on a filesystem where attributes aren't supported. It does currently only support reading attributes/attribute directories though. All other calls are just passed through to the super filesystem. * Adjust places where a HAS_FS_CALL() is taken as a guarantee that the operation is supported. For the overlay filesystem we may later return a B_UNSUPPORTED, so make sure that in that case proper fallback options are taken. * Make the iso9660 filesystem request overlay sub nodes. This can be fine tuned later to only trigger where there are features on a CD that need emulation at all. If you happened to know the attribute file format and location you could build an iso with read-only attribute support now. Note that this won't be enough to get a bootable iso-only image as the query and index support is yet missing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29177 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c348abb |
|
30-Sep-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Most of the other file systems now maintain the st_blocks value. It might not always be correct, but should be at least close. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27793 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eb097431 |
|
15-Sep-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* ISOReadDirEnt() did not set the dirent::d_dev field, thus causing bug #2734. * Moved the rock ridge attribute parsing code to a separate function. * Removed superfluous malloc() vs. realloc() code. * Checked allocations in the rock ridge parsing code. * Cleanup, renamed some variables, structures, functions, etc. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27569 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d02cde30 |
|
12-Sep-2008 |
Michael Lotz <mmlr@mlotz.ch> |
CID 877: Fix memory leak in error case. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27467 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
44d0dbc8 |
|
10-Sep-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* dirent::d_reclen was set incorrectly, causing bug #2699. * Removed unneeded "block_out" variable in ISOReadDirEnt(). * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27408 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ec598fe4 |
|
27-Jul-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added FS interface hooks io() and cancel_io(). The former is supposed to provide asynchrounous (or only synchronous, if asynchronous is not supported) I/O request support. It will eventually replace {read,write}_pages(). None of the FS implementations implement them yet. * Implemented some support functions for request-based I/O. File system implementations can use do_fd_io() which passes an I/O request to the layer responsible for a given FD, and do_iterative_fd_io(), which translates a request for a file to subrequests for the underlying device and passes them on. Both fall back to synchrounous processing when the io() hook is not supported. Furthermore added vfs_synchronous_io() which should be handy for the devfs to perform io_requests synchronously for devices that don't support the io() hook. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26655 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e6bd90c5 |
|
23-Jul-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* bfs_fsync() was the only place which could cause the fs_vnode_ops::write_pages() to be called with fsReenter = true. Since this is no longer the case, the argument has become superfluous. For read_pages() it always was. Removed the argument from the functions and all functions that propagated it. * Some whitespace at the end of lines was removed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26579 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1da9f5ce |
|
10-May-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added BDiskSystem::ShortName() and everything needed to get it there. * Added BDiskDeviceRoster::GetDiskSystem() method, that can get a disk system by short/pretty/module name - since they should all be unique, I put them in a single namespace, please complain if you don't like that :-) * Cleaned up DiskSystem.h and DiskDeviceRoster.h according to the updated header guidelines. * Renamed ntfs pretty name from "ntfs File System" to "Windows NT File System". git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25414 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0eaadd30 |
|
17-Apr-2008 |
Michael Lotz <mmlr@mlotz.ch> |
* Applying patch by Dustin Howett that updates the iso9660 filesystem to the new filesystem interface. * Renamed sISO* to gISO* though as they are in fact not static. Briefly tested and works as expected. Thanks for your work Dustin! Closes enhancement #2089. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24994 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ff99132e |
|
20-Nov-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed fs_get_file_map(); for a file system that only has contiguous files, there is no need for the file map service. * Added and implemented fs_read_pages() - this should fix bug #1633; the file system had not been ported to the new file cache API yet. * Cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22970 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dc9a52b9 |
|
13-Nov-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed iso.h to iso9660.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22921 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b2c5d03 |
|
13-Nov-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed a crashing bug in the identification code: it copied a C++ object on the stack to an allocated one - on destruction of the latter, the resources were already freed. * Made the identify code more negligent against bad CDs - ie. it will identify even broken CDs if they can be mounted. * Made identification endian aware (it should now also work on big endian systems). * Renamed many structures, methods, and fields to be less verbose, and follow our style guide. * Renamed iso9660.cpp|h to iso9660_identify.cpp|h. * Renamed iso.c to iso9660.c, rock.h to rock_ridge.h. * Removed unnecessary cruft from the Jamfile. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22920 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3d268eda |
|
10-Nov-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Extracted file_map API out of the file cache - it's now an optional service that can be used by file systems. * Changed the way the file cache works: instead of reading/writing to the underlying device directly, it can now be used for any data source, ie. also network file systems. * As a result, the former pages_io() moved to the VFS layer, and can now be called by a file system via {read|write}_file_io_vec_pages() (naming suggestions are always welcomed :-)). It now gets an FD, and uses that to communicate with the device (via its fs_{read|write}_pages() hooks). * The file_cache_{read|write}() functions must now be called without holding an I/O relevant file system lock. That allows the file cache to prepare the pages without colliding with the page writer, IOW the "mayBlock" flag can go into the attic again (yay!). * This also results in a much better performance when the system does I/O and is low on memory, as the page writer can now finally write back some pages, and that even without maxing out the CPU :) * The API changes put slightly more burden on the fs_{read|write}_pages() hooks, but in combination with the file_map it's still pretty straight forward. It just will have to dispatch the call to the underlying device directly, usually it will just call its fs_{read|write}_pages() hooks via the above mentioned calls. * Ported BFS and FAT to the new API, the latter has not been tested, though. * Also ported the API changes to the fs_shell. I also completely removed its file cache level page handling - the downside is that device access is no longer cached (ie. depends on the host OS now), the upside is that the code is greatly simplified. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22886 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
76a8ec23 |
|
22-Aug-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added disk system flags for whether a partition name and partition content name are supported. * Added file_system_module_info::flags (analogously to partition_module_info::flags) which indicate which disk device features the FS supports. * Replaced the file_system_module_info/partition_module_info::supports_*() hooks by a get_supported_operations() hook and for partitioning systems additionally a get_supported_child_operations() hook. * Updated file and partitioning systems accordingly. * Updated fs_shell accordingly. * Updated the DDM accordingly. The syscall interface remains unchanged, though. * _user_supports_initializing_partition() also checks whether the parent partitioning system is content now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22043 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
245aecda |
|
21-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Got rid of vnode_id and mount_id, replaced with ino_t and dev_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21485 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
12d359b8 |
|
04-Mar-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Removed write_link from the FS module interface. Adjusted all FS add-ons accordingly and removed the syscall. * Removed send_notification(). * Reimplemented notify_listener(). It used the unimplemented send_notification(). Now it has a chance to work. Note that notify_listener() is obsolete. I would already have removed it, if there weren't lots of FS implementations still using it (Hint!). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20329 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
12e4be29 |
|
05-Sep-2006 |
Jérôme Duval <korli@users.berlios.de> |
cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18746 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9d254f45 |
|
27-Aug-2006 |
Jérôme Duval <korli@users.berlios.de> |
we need to call put_vnode on unmount git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18666 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
44d56753 |
|
16-Aug-2006 |
Jérôme Duval <korli@users.berlios.de> |
KernelAddon and KernelStaticLibrary don't include kernel, kernel arch, boot platform headers anymore. Fixed the build of most of targets using these rules. Though the build can be still broken, feel free to fix. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18521 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b4cb109 |
|
10-Aug-2006 |
Jérôme Duval <korli@users.berlios.de> |
tentative at using file_cache API in iso9660, untested minor cleanup in TRACE() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18474 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3b723f79 |
|
28-Feb-2006 |
Jérôme Duval <korli@users.berlios.de> |
added fs_get_vnode_name cleanup of Jamfile clean license git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16549 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
21e1553e |
|
27-Feb-2006 |
Jérôme Duval <korli@users.berlios.de> |
haiku version of iso9660 filesystem working, except for autodetection git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16539 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c3e68d8d92801ca71472daaa7e3c996d13d11ecf |
|
11-May-2013 |
Jerome Duval <jerome.duval@gmail.com> |
cdda, fat, iso9660: clear tv_nsecs fields in the stat struct * devfs in fact doesn't provide a zeroed buffer.
|
#
6ea60bcdbaf07b400adb1de971c3562d15f55668 |
|
15-Apr-2012 |
Axel Dörfler <axeld@pinc-software.de> |
This must be a 64 bit computation for disks larger than 4GB. * This closes ticket #8460. * Patch from jahaiku, thanks!
|
#
d63f4274b665d32065f24a7a01a025578c8a43c9 |
|
18-Oct-2010 |
Jérôme Duval <korli@users.berlios.de> |
added a file system call preallocate() as described in #6285, currently unused git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39006 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
533cba7eff7465e14de98036c8a2a0aeeba2bdf9 |
|
28-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
bonefish + axeld: * Reverted r31809 as it introduced a race condition; if the I/O request had been notified, it could already been deleted at that point. * Instead, we need to notify the request in each file system/driver that uses it. Added new notify_io_request() function that does that exactly. * Added a TODO comment to the userlandfs where the request notification needs a bit more thought. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31903 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
41b19806916cc348ced2be49fd2779e6bc55e7c9 |
|
28-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added support for the io() hook. Not yet tested. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30906 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f0c050f60eb1199249158806a7b7ad8f5b90692b |
|
28-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30905 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
56b2febaadfa19cec3918e0018a6fa5f1161a274 |
|
27-May-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Add actual support for relocated directories. In case we hit a placeholder file pointing to a relocated directory, we now re-initialize the node we are initializing with the first entry of the pointed at directory. This ought to be the "." entry containing the proper flags, start block number and data length. As per the specs we do only keep the file id or alternate name of the placeholder and take everything else from the relocated directory. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30886 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
99d1bfb5de8e2ca3ff2b245a050c09366cca5374 |
|
07-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The code in fs_walk() duplicates the one in ISOReadDir() mostly, and suffered from the same "associated file" problem as the latter. This now finally fixes bug #3861. This badly needs some cleanup. * Fixed a possible problem I introduced in ISOReadDir() (did not read the next block even if it should have). * Fixed warnings with debug output turned on. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30663 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
47a214def6b09d93674ecb5eef1eef625f936436 |
|
07-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* We now ignore associated files. This makes the double entries of bug #3861 disappear. * When parsing rock ridge attributes, we no longer stop when we encounter an unknown one. Instead, we just parse through until the end. The ISO image as part of #3861 also made this visible. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30655 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2a64cb1138cb25680860aedaa89e9e74e462cc81 |
|
05-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed two crashing bugs, one of them mentioned in ticket #3861: * ISOReadDirEnt() did happily read after the 2048 byte block. Now we check after having processed an entry if the position is on the 2048 block boundary, and skip to the next block directly. * fs_walk() assumed a 2 block set (and accessed memory therein), but only has access to a single block. I haven't looked at the specs, so I'm not really sure what the old code tried to achieve. In any case, it doesn't crash anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30640 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f47bff088097e3f4c04e95fbdb2383caa65ff996 |
|
05-May-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Made the iso9660 file system buildable within the fs_shell (iso9660_shell). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30639 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
49004dc730f842ea3c162b56dee63696c51d17c7 |
|
19-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Remove the additional fs_vnode_ops arugment from get_vnode() again as it's not needed at all when used as intended. Thanks Ingo for the explanation on how this is intended to work. Adjusted the overlay fs accordingly and updated/reverted the changes to the other filesystems. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29250 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a26c24392042ca7bfad2e78f73a0b75c463c0455 |
|
14-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Adding volume ops to the overlay filesystem. * Remove the previous method of applying the overlay by flags. In the future the overlay can just be mounted as a filesystem layer. This is probably how layers were intended to work in the first place. * Move the filesystem module info and filesystem name from the fs_mount to the fs_volume structure. Filesystem layering is done by having multiple layered volumes and we want to be able to have a different fs per layer. * Adapt VFS code to this move. * Implement mounting layered filesystems. Specifying multiple filesystems separated by a colon on mount will cause the layers to be set up and the corresponding filesystems to be mounted at that layer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29199 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3e01561729cd577cd821d45f56d6f5457a60756d |
|
13-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Request an overlay for the root vnode as well so attributes are available on the fs root as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29197 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
00405f2286fd370a0bd264d0bbac0cfa120e7646 |
|
09-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Add an additional argument to get_vnode() that gets the fs_vnode_ops of the node. That is needed for a layered filesystem to be able to construct a full fs_vnode out of a volume/inode pair. * Adapt places where get_vnode is used. Sadly this is a C API and we can't just use a default NULL for that argument. * Introduce a flag B_VNODE_WANTS_OVERLAY_SUB_NODE that can be returned in the flags field of a fs get_vnode call. A filesystem can use this flag to indicate that it doesn't support the full set of fs features (attributes, write support) and it'd like to have unsupported calls emulated by an overlay sub node. * Add a perliminary overlay filesystem that emulates file attributes using files on a filesystem where attributes aren't supported. It does currently only support reading attributes/attribute directories though. All other calls are just passed through to the super filesystem. * Adjust places where a HAS_FS_CALL() is taken as a guarantee that the operation is supported. For the overlay filesystem we may later return a B_UNSUPPORTED, so make sure that in that case proper fallback options are taken. * Make the iso9660 filesystem request overlay sub nodes. This can be fine tuned later to only trigger where there are features on a CD that need emulation at all. If you happened to know the attribute file format and location you could build an iso with read-only attribute support now. Note that this won't be enough to get a bootable iso-only image as the query and index support is yet missing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29177 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c348abbf7aca35c66b88e159bdafa41f2a9743f |
|
30-Sep-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Most of the other file systems now maintain the st_blocks value. It might not always be correct, but should be at least close. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27793 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eb0974311f6984a71c24a444b4eebcba5179fa53 |
|
15-Sep-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* ISOReadDirEnt() did not set the dirent::d_dev field, thus causing bug #2734. * Moved the rock ridge attribute parsing code to a separate function. * Removed superfluous malloc() vs. realloc() code. * Checked allocations in the rock ridge parsing code. * Cleanup, renamed some variables, structures, functions, etc. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27569 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d02cde3053be75589a08149100011a9f73e6e966 |
|
12-Sep-2008 |
Michael Lotz <mmlr@mlotz.ch> |
CID 877: Fix memory leak in error case. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27467 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
44d0dbc89810d1b76cab08cea586226471e752d8 |
|
10-Sep-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* dirent::d_reclen was set incorrectly, causing bug #2699. * Removed unneeded "block_out" variable in ISOReadDirEnt(). * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27408 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ec598fe493579e3d522453cb407ca3c6b57d715a |
|
27-Jul-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added FS interface hooks io() and cancel_io(). The former is supposed to provide asynchrounous (or only synchronous, if asynchronous is not supported) I/O request support. It will eventually replace {read,write}_pages(). None of the FS implementations implement them yet. * Implemented some support functions for request-based I/O. File system implementations can use do_fd_io() which passes an I/O request to the layer responsible for a given FD, and do_iterative_fd_io(), which translates a request for a file to subrequests for the underlying device and passes them on. Both fall back to synchrounous processing when the io() hook is not supported. Furthermore added vfs_synchronous_io() which should be handy for the devfs to perform io_requests synchronously for devices that don't support the io() hook. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26655 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e6bd90c58dbae64f3b464edcff90dcb06e63a716 |
|
23-Jul-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* bfs_fsync() was the only place which could cause the fs_vnode_ops::write_pages() to be called with fsReenter = true. Since this is no longer the case, the argument has become superfluous. For read_pages() it always was. Removed the argument from the functions and all functions that propagated it. * Some whitespace at the end of lines was removed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26579 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1da9f5cea5ea4d32c539a01cd94a7b605e941beb |
|
10-May-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added BDiskSystem::ShortName() and everything needed to get it there. * Added BDiskDeviceRoster::GetDiskSystem() method, that can get a disk system by short/pretty/module name - since they should all be unique, I put them in a single namespace, please complain if you don't like that :-) * Cleaned up DiskSystem.h and DiskDeviceRoster.h according to the updated header guidelines. * Renamed ntfs pretty name from "ntfs File System" to "Windows NT File System". git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25414 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0eaadd30b2afb07a60f218ec038db7ad80a37d65 |
|
17-Apr-2008 |
Michael Lotz <mmlr@mlotz.ch> |
* Applying patch by Dustin Howett that updates the iso9660 filesystem to the new filesystem interface. * Renamed sISO* to gISO* though as they are in fact not static. Briefly tested and works as expected. Thanks for your work Dustin! Closes enhancement #2089. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24994 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ff99132e67146f179fdabe07ac385e5221ede678 |
|
20-Nov-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed fs_get_file_map(); for a file system that only has contiguous files, there is no need for the file map service. * Added and implemented fs_read_pages() - this should fix bug #1633; the file system had not been ported to the new file cache API yet. * Cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22970 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dc9a52b9175a71865127c6c292e6618d95edbe7a |
|
13-Nov-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed iso.h to iso9660.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22921 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b2c5d03e874e4861b2e75221e1ee37492682e06 |
|
13-Nov-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed a crashing bug in the identification code: it copied a C++ object on the stack to an allocated one - on destruction of the latter, the resources were already freed. * Made the identify code more negligent against bad CDs - ie. it will identify even broken CDs if they can be mounted. * Made identification endian aware (it should now also work on big endian systems). * Renamed many structures, methods, and fields to be less verbose, and follow our style guide. * Renamed iso9660.cpp|h to iso9660_identify.cpp|h. * Renamed iso.c to iso9660.c, rock.h to rock_ridge.h. * Removed unnecessary cruft from the Jamfile. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22920 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3d268eda3d0ca504c865533347decf27b54025b6 |
|
10-Nov-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Extracted file_map API out of the file cache - it's now an optional service that can be used by file systems. * Changed the way the file cache works: instead of reading/writing to the underlying device directly, it can now be used for any data source, ie. also network file systems. * As a result, the former pages_io() moved to the VFS layer, and can now be called by a file system via {read|write}_file_io_vec_pages() (naming suggestions are always welcomed :-)). It now gets an FD, and uses that to communicate with the device (via its fs_{read|write}_pages() hooks). * The file_cache_{read|write}() functions must now be called without holding an I/O relevant file system lock. That allows the file cache to prepare the pages without colliding with the page writer, IOW the "mayBlock" flag can go into the attic again (yay!). * This also results in a much better performance when the system does I/O and is low on memory, as the page writer can now finally write back some pages, and that even without maxing out the CPU :) * The API changes put slightly more burden on the fs_{read|write}_pages() hooks, but in combination with the file_map it's still pretty straight forward. It just will have to dispatch the call to the underlying device directly, usually it will just call its fs_{read|write}_pages() hooks via the above mentioned calls. * Ported BFS and FAT to the new API, the latter has not been tested, though. * Also ported the API changes to the fs_shell. I also completely removed its file cache level page handling - the downside is that device access is no longer cached (ie. depends on the host OS now), the upside is that the code is greatly simplified. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22886 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
76a8ec23db391176bac91f33c5f1fc6e8e41866c |
|
22-Aug-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added disk system flags for whether a partition name and partition content name are supported. * Added file_system_module_info::flags (analogously to partition_module_info::flags) which indicate which disk device features the FS supports. * Replaced the file_system_module_info/partition_module_info::supports_*() hooks by a get_supported_operations() hook and for partitioning systems additionally a get_supported_child_operations() hook. * Updated file and partitioning systems accordingly. * Updated fs_shell accordingly. * Updated the DDM accordingly. The syscall interface remains unchanged, though. * _user_supports_initializing_partition() also checks whether the parent partitioning system is content now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22043 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
245aecda8ac43fc2c0c0bac6a7e4016efa9b71e1 |
|
21-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Got rid of vnode_id and mount_id, replaced with ino_t and dev_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21485 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
12d359b85a22246a568569b09b6587534e98aacc |
|
04-Mar-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Removed write_link from the FS module interface. Adjusted all FS add-ons accordingly and removed the syscall. * Removed send_notification(). * Reimplemented notify_listener(). It used the unimplemented send_notification(). Now it has a chance to work. Note that notify_listener() is obsolete. I would already have removed it, if there weren't lots of FS implementations still using it (Hint!). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20329 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
12e4be290d41bdc06599679d61c80d28c3d3cf35 |
|
05-Sep-2006 |
Jérôme Duval <korli@users.berlios.de> |
cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18746 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9d254f4567c54256dddbe9e02d582d3856967845 |
|
27-Aug-2006 |
Jérôme Duval <korli@users.berlios.de> |
we need to call put_vnode on unmount git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18666 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
44d5675324128d940518aaf7f2096efe9965db3a |
|
16-Aug-2006 |
Jérôme Duval <korli@users.berlios.de> |
KernelAddon and KernelStaticLibrary don't include kernel, kernel arch, boot platform headers anymore. Fixed the build of most of targets using these rules. Though the build can be still broken, feel free to fix. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18521 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b4cb1093258d3f87512e1538bf78742871243c3 |
|
10-Aug-2006 |
Jérôme Duval <korli@users.berlios.de> |
tentative at using file_cache API in iso9660, untested minor cleanup in TRACE() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18474 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3b723f79140b51ec56913b1d7b8ccaa3a59b26f4 |
|
28-Feb-2006 |
Jérôme Duval <korli@users.berlios.de> |
added fs_get_vnode_name cleanup of Jamfile clean license git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16549 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
21e1553eb5d00d26c2df2dab004f7a41e667dd09 |
|
27-Feb-2006 |
Jérôme Duval <korli@users.berlios.de> |
haiku version of iso9660 filesystem working, except for autodetection git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16539 a95241bf-73f2-0310-859d-f6bbb57e9c96
|