#
3386d398 |
|
20-Nov-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixed warning. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34145 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e66cd9d7 |
|
02-Apr-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* For every request to userland we also send the team/thread/user/group ID of the current thread, now. Implemented by introducing a new base class KernelRequest which has respective attributes. * Server: RequestThreadContext does now also save the request that is being processed. Furthermore some space has been reserved for file system specific data, which can be initialized by the new FileSystem::InitRequestThreadContext(). * FUSE library: Implemented fuse_get_context() using the new RequestThreadContext feature. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29872 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a7731138 |
|
02-Apr-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Initialize fuse_config before parsing the arguments. * Implemented fuse_is_lib_option() more correctly. * Actually use the value of the "use_ino" option. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29871 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1000f8b2 |
|
27-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fixed double-lock in RemoveDir() spotted by Stippi. * Added node monitoring support. For the changes we make at least. Changes made by other peer in network file systems are not recognized. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29749 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c8722a1e |
|
27-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Removed WriteFSInfo(). It's used only for changing the volume name and we can't implement that with the FUSE interface. * We now mark nodes dirty after a write operation. * Implemented Sync() by fsync()ing all dirty nodes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29746 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3ed1a753 |
|
26-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Make gcc 4 happy. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29742 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
40b0400d |
|
26-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fixed incorrect loop check in _UnlockNodeChainInternal() nothing would ever be unlocked. * Fixed incorrect array indexing in _FindCommonAncestor(). * Fixed copy and paste bugs in _LockNodeChainsInternal(). * Added MultiNodeLocker class, a RAII frontend for _{Lock,Unlock}NodeChains(). * Implemented entry renaming and hard linking. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29741 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85ea1e09 |
|
26-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Refactored node locking methods. There's now a LockIterator class which helps with locking. * Implemented methods for locking two directories. It's a bit complex, since we need to enforce a global locking order on the node tree to avoid deadlocks. Untested yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29738 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
edae667b |
|
26-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Removed the asynchronous I/O methods. We won't implement them for the time being. * Introduced locking for FileCookie. * Implemented SetFlags() and FSync(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29736 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b747212f |
|
25-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Implemented WriteStat() (backend for chown(), chmod(), utime(), truncate()). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29722 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3cf43c26 |
|
25-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Removed the fs_vnode_ops::create_dir() parameter for returning the ID of the newly created dir. The VFS really doesn't need it and for some file systems it might not be easy to get by. Several file systems (e.g. rootfs and fat) were ignoring the parameter anyway. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29719 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cd4ee847 |
|
25-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added support for symlink and directory creation, as well as entry deletion (directories and other nodes). * Removed methods we can't possibly implement, since the FUSE interface doesn't provide them and we can't emulate them. * A FUSEEntry does now also own a reference to its parent directory. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29715 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d16ba4b9 |
|
24-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added support for O_TRUNC, file creation, and writing to files. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29689 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fde6bf44 |
|
24-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Preparations for write support: Added a locking to the existing hooks. We need to make sure that the paths of nodes don't change while we're meddling with them. We read-lock the directories up to the root directory for that purpose. * Added missing locking for directory and attribute directory cookies. We have to do that, since concurrent readdir()s on the same dir handle are possible and we write-access the cookie data in such a case. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29687 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f11f1730 |
|
22-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Implemented the attribute directory methods. Untested yet -- sshfs doesn't support the respective xattr hooks. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29656 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fd4f53a7 |
|
22-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Implemented ReadSymlink() and Access(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29655 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b5884f05 |
|
22-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Got rid of from_fuse_error(). The client FS hooks are supposed to return negative error codes now (e.g. using the new error mapping mechanism). This is necessary since the read() and write() hooks have to return a size or a negative error code. * Implemented Read(). We can now read sshfs files. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29654 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
be070362 |
|
21-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
A non-empty volume name looks much better in Tracker. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29635 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fe24dc3d |
|
21-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fixed the directory filler callbacks. It is possible that it is passed a NULL struct stat (new callback) or a 0 type. So if we don't have a node type, we need to stat the node. * Added simple opening/closing of files (no reading/writing yet). It's now possible to browse sshfs volumes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29634 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
41464387 |
|
20-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
As per the documentation of the statfs() hook, some statvfs members are ignored. So we must not use them. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29624 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d0f474c |
|
20-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added support for the zero offset method for the readdir() hook's filler callback. * Added support for the deprecated getdir() hook. * Fixed various bugs. Listing the root directory with sshfs does now work. For subdirectories stat()ing the entries seems to fail, which might be due to the yet missing open() support. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29623 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f06f7337 |
|
19-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* More work on the file system initialization. Mounting/unmounting works now with sshfs. * Added basic node and entry management, which we need, since the FUSE interface works with paths only, while our VFS plays with node IDs and node cookies. * Implemented most of the mandatory hooks (vnode operations, lookup, read stat, open/close/read dir). I was hoping to get directory listings with sshfs now, but as I had to find out, it implements the deprecated getdir() while we only support the new {open,read,release}dir() interface yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29619 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1d077f83 |
|
19-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added "fuse_api.h" header wrapping the inclusion of <fuse.h>. * Implemented the fuse_fs_*() functions. * More work on the initialization procedure for the client file system. We do now start a separate thread which calls the main() function. It won't return from fuse_main_real() until unmounting the FS. We create a fuse_fs structure and call the client FS initialization and cleanup hooks. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29613 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c9323289 |
|
18-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added FileSystem and Volume subclasses for the FUSE interface. ATM they are mostly skeletons, doing a bit of initialization. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29604 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3386d3985cb6d9dcfbce5ea4a301d5b0142610c0 |
|
20-Nov-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixed warning. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34145 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e66cd9d71b0ae8fe311674bf7b87cb26d7452b61 |
|
02-Apr-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* For every request to userland we also send the team/thread/user/group ID of the current thread, now. Implemented by introducing a new base class KernelRequest which has respective attributes. * Server: RequestThreadContext does now also save the request that is being processed. Furthermore some space has been reserved for file system specific data, which can be initialized by the new FileSystem::InitRequestThreadContext(). * FUSE library: Implemented fuse_get_context() using the new RequestThreadContext feature. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29872 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a7731138040434ec1fccf01e6c09c70311e550e3 |
|
02-Apr-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Initialize fuse_config before parsing the arguments. * Implemented fuse_is_lib_option() more correctly. * Actually use the value of the "use_ino" option. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29871 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1000f8b2128aa579abfb72294f067b9a87b9784a |
|
27-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fixed double-lock in RemoveDir() spotted by Stippi. * Added node monitoring support. For the changes we make at least. Changes made by other peer in network file systems are not recognized. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29749 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c8722a1e821590c60271c58bce3c2f505f42dd98 |
|
27-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Removed WriteFSInfo(). It's used only for changing the volume name and we can't implement that with the FUSE interface. * We now mark nodes dirty after a write operation. * Implemented Sync() by fsync()ing all dirty nodes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29746 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3ed1a753c5046ba304a7f38c8120937e60d864b6 |
|
26-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Make gcc 4 happy. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29742 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
40b0400da7f99fd4822113ddda275e49368aa690 |
|
26-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fixed incorrect loop check in _UnlockNodeChainInternal() nothing would ever be unlocked. * Fixed incorrect array indexing in _FindCommonAncestor(). * Fixed copy and paste bugs in _LockNodeChainsInternal(). * Added MultiNodeLocker class, a RAII frontend for _{Lock,Unlock}NodeChains(). * Implemented entry renaming and hard linking. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29741 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
85ea1e09d364bbc3c9b97bf07e2a44afe1a6ec86 |
|
26-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Refactored node locking methods. There's now a LockIterator class which helps with locking. * Implemented methods for locking two directories. It's a bit complex, since we need to enforce a global locking order on the node tree to avoid deadlocks. Untested yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29738 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
edae667b947f29e55a2e6b4ae084b068970d8354 |
|
26-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Removed the asynchronous I/O methods. We won't implement them for the time being. * Introduced locking for FileCookie. * Implemented SetFlags() and FSync(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29736 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b747212f50e5d0656ca37fc0481dc5c54a98102e |
|
25-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Implemented WriteStat() (backend for chown(), chmod(), utime(), truncate()). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29722 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3cf43c26516b695e35b7433196a530f7541c4ca8 |
|
25-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Removed the fs_vnode_ops::create_dir() parameter for returning the ID of the newly created dir. The VFS really doesn't need it and for some file systems it might not be easy to get by. Several file systems (e.g. rootfs and fat) were ignoring the parameter anyway. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29719 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cd4ee847c4fab357b09c6beb021f5b13d0672f07 |
|
25-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added support for symlink and directory creation, as well as entry deletion (directories and other nodes). * Removed methods we can't possibly implement, since the FUSE interface doesn't provide them and we can't emulate them. * A FUSEEntry does now also own a reference to its parent directory. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29715 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d16ba4b9575c3699cb3dd3d1519cb009ffec66f8 |
|
24-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added support for O_TRUNC, file creation, and writing to files. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29689 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fde6bf44b10d066b34bb97daa5c4a62417df995e |
|
24-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Preparations for write support: Added a locking to the existing hooks. We need to make sure that the paths of nodes don't change while we're meddling with them. We read-lock the directories up to the root directory for that purpose. * Added missing locking for directory and attribute directory cookies. We have to do that, since concurrent readdir()s on the same dir handle are possible and we write-access the cookie data in such a case. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29687 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f11f17301f8a6cc93f53733653cd0bda1b5a1c8c |
|
22-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Implemented the attribute directory methods. Untested yet -- sshfs doesn't support the respective xattr hooks. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29656 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fd4f53a7a02495d3dfcd5b41d053aff41ca609e5 |
|
22-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Implemented ReadSymlink() and Access(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29655 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b5884f05a3df604904dd19da67c435cd55a58b75 |
|
22-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Got rid of from_fuse_error(). The client FS hooks are supposed to return negative error codes now (e.g. using the new error mapping mechanism). This is necessary since the read() and write() hooks have to return a size or a negative error code. * Implemented Read(). We can now read sshfs files. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29654 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
be070362912fcef179ede483d00ecbfa3a361276 |
|
21-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
A non-empty volume name looks much better in Tracker. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29635 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fe24dc3df4436d9d110aee801def086bbd9f47f8 |
|
21-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fixed the directory filler callbacks. It is possible that it is passed a NULL struct stat (new callback) or a 0 type. So if we don't have a node type, we need to stat the node. * Added simple opening/closing of files (no reading/writing yet). It's now possible to browse sshfs volumes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29634 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
41464387bd2a6940f6a6ea0b7c9b0288ec12787b |
|
20-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
As per the documentation of the statfs() hook, some statvfs members are ignored. So we must not use them. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29624 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d0f474ca185e643a8140b4ff6628009f23a2cd8 |
|
20-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added support for the zero offset method for the readdir() hook's filler callback. * Added support for the deprecated getdir() hook. * Fixed various bugs. Listing the root directory with sshfs does now work. For subdirectories stat()ing the entries seems to fail, which might be due to the yet missing open() support. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29623 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f06f733751a4f6013ba903906e0b6302f37e3413 |
|
19-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* More work on the file system initialization. Mounting/unmounting works now with sshfs. * Added basic node and entry management, which we need, since the FUSE interface works with paths only, while our VFS plays with node IDs and node cookies. * Implemented most of the mandatory hooks (vnode operations, lookup, read stat, open/close/read dir). I was hoping to get directory listings with sshfs now, but as I had to find out, it implements the deprecated getdir() while we only support the new {open,read,release}dir() interface yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29619 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1d077f8397a3a222cf62d3c197ad5af5bfb48967 |
|
19-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added "fuse_api.h" header wrapping the inclusion of <fuse.h>. * Implemented the fuse_fs_*() functions. * More work on the initialization procedure for the client file system. We do now start a separate thread which calls the main() function. It won't return from fuse_main_real() until unmounting the FS. We create a fuse_fs structure and call the client FS initialization and cleanup hooks. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29613 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c93232896fd255f40f571e1a88c66bd34ebbef16 |
|
18-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added FileSystem and Volume subclasses for the FUSE interface. ATM they are mostly skeletons, doing a bit of initialization. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29604 a95241bf-73f2-0310-859d-f6bbb57e9c96
|