* Factored out the vnode disconnection code from fs_unmount() to a separate

function, and added a vfs_disconnect_vnode() for other kernel components.
* devfs_unpublish_device() can now optionally make use of this call.
* Fixed the type check of devfs' unpublish_node().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16907 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2006-03-28 01:13:12 +00:00
parent 065aa7f66c
commit 606e0d364e
4 changed files with 158 additions and 104 deletions
+1 -1
View File
@@ -24,7 +24,7 @@ status_t devfs_publish_file_device(const char *path, const char *filePath);
status_t devfs_unpublish_partition(const char *path);
status_t devfs_publish_partition(const char *path, const partition_info *info);
status_t devfs_unpublish_device(const char *path);
status_t devfs_unpublish_device(const char *path, bool disconnect);
status_t devfs_publish_device(const char *path, void *ident, device_hooks *calls);
status_t devfs_publish_directory(const char *path);
+10 -7
View File
@@ -5,24 +5,26 @@
* Copyright 2001-2002, Travis Geiselbrecht. All rights reserved.
* Distributed under the terms of the NewOS License.
*/
#ifndef _KERNEL_VFS_H
#define _KERNEL_VFS_H
#include <kernel.h>
#include <sys/stat.h>
#include <sys/select.h>
#include <signal.h>
#include <dirent.h>
#include <fs_interface.h>
#include <lock.h>
#include <util/list.h>
#include <fs_interface.h>
#include <dirent.h>
#include <signal.h>
#include <sys/stat.h>
#include <sys/select.h>
#define DEFAULT_FD_TABLE_SIZE 128
#define MAX_FD_TABLE_SIZE 2048
#define MAX_NODE_MONITORS 4096
struct kernel_args;
struct vm_cache_ref;
struct file_descriptor;
@@ -96,6 +98,7 @@ status_t vfs_get_fs_node_from_path(mount_id mountID, const char *path,
status_t vfs_stat_vnode(void *_vnode, struct stat *stat);
status_t vfs_get_vnode_name(void *vnode, char *name, size_t nameSize);
status_t vfs_get_cwd(mount_id *_mountID, vnode_id *_vnodeID);
status_t vfs_disconnect_vnode(mount_id mountID, vnode_id vnodeID);
void vfs_free_unused_vnodes(int32 level);
/* special module convenience call */