From 3cf43c26516b695e35b7433196a530f7541c4ca8 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Thu, 26 Mar 2009 00:16:34 +0000 Subject: [PATCH] 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 --- headers/os/drivers/fs_interface.h | 2 +- headers/private/fs_shell/fssh_fs_interface.h | 2 +- headers/private/userlandfs/private/Requests.h | 2 -- .../file_systems/bfs/kernel_interface.cpp | 3 +-- src/add-ons/kernel/file_systems/fat/file.c | 3 +-- src/add-ons/kernel/file_systems/fat/file.h | 2 +- .../attribute_overlay/attribute_overlay.cpp | 16 ++++++++++---- .../layers/write_overlay/write_overlay.cpp | 12 +++++------ .../kernel/file_systems/nfs/nfs_add_on.c | 4 +--- .../kernel/file_systems/ntfs/fs_func.c | 6 ++---- .../file_systems/ramfs/kernel_interface.cpp | 4 +--- .../userlandfs/kernel_add_on/Volume.cpp | 3 +-- .../userlandfs/kernel_add_on/Volume.h | 2 +- .../kernel_add_on/kernel_interface.cpp | 11 +++++----- .../server/UserlandRequestHandler.cpp | 9 ++++---- .../server/UserlandRequestHandler.h | 6 ++++-- .../file_systems/userlandfs/server/Volume.cpp | 2 +- .../file_systems/userlandfs/server/Volume.h | 2 +- .../server/beos/BeOSKernelVolume.cpp | 21 +++---------------- .../userlandfs/server/beos/BeOSKernelVolume.h | 2 +- .../userlandfs/server/fuse/FUSEVolume.cpp | 5 +---- .../userlandfs/server/fuse/FUSEVolume.h | 2 +- .../server/haiku/HaikuKernelVolume.cpp | 5 ++--- .../server/haiku/HaikuKernelVolume.h | 2 +- src/system/kernel/device_manager/devfs.cpp | 3 +-- src/system/kernel/fs/rootfs.cpp | 6 +++--- src/system/kernel/fs/vfs.cpp | 6 ++---- src/tools/fs_shell/vfs.cpp | 6 ++---- 28 files changed, 61 insertions(+), 88 deletions(-) diff --git a/headers/os/drivers/fs_interface.h b/headers/os/drivers/fs_interface.h index d39574592c..cb6bb91c4c 100644 --- a/headers/os/drivers/fs_interface.h +++ b/headers/os/drivers/fs_interface.h @@ -184,7 +184,7 @@ struct fs_vnode_ops { /* directory operations */ status_t (*create_dir)(fs_volume *volume, fs_vnode *parent, - const char *name, int perms, ino_t *_newVnodeID); + const char *name, int perms); status_t (*remove_dir)(fs_volume *volume, fs_vnode *parent, const char *name); status_t (*open_dir)(fs_volume *volume, fs_vnode *vnode, diff --git a/headers/private/fs_shell/fssh_fs_interface.h b/headers/private/fs_shell/fssh_fs_interface.h index d4d406c9c8..5cbad95116 100644 --- a/headers/private/fs_shell/fssh_fs_interface.h +++ b/headers/private/fs_shell/fssh_fs_interface.h @@ -205,7 +205,7 @@ struct fssh_fs_vnode_ops { /* directory operations */ fssh_status_t (*create_dir)(fssh_fs_volume *volume, fssh_fs_vnode *parent, - const char *name, int perms, fssh_vnode_id *_newVnodeID); + const char *name, int perms); fssh_status_t (*remove_dir)(fssh_fs_volume *volume, fssh_fs_vnode *parent, const char *name); fssh_status_t (*open_dir)(fssh_fs_volume *volume, fssh_fs_vnode *vnode, diff --git a/headers/private/userlandfs/private/Requests.h b/headers/private/userlandfs/private/Requests.h index e474570a26..fdf15a5c27 100644 --- a/headers/private/userlandfs/private/Requests.h +++ b/headers/private/userlandfs/private/Requests.h @@ -954,8 +954,6 @@ public: class CreateDirReply : public ReplyRequest { public: CreateDirReply() : ReplyRequest(CREATE_DIR_REPLY) {} - - ino_t newDir; }; // RemoveDirRequest 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 8328db757c..0870944c42 100644 --- a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp @@ -1439,7 +1439,7 @@ bfs_read_link(fs_volume* _volume, fs_vnode* _node, char* buffer, static status_t bfs_create_dir(fs_volume* _volume, fs_vnode* _directory, const char* name, - int mode, ino_t* _newVnodeID) + int mode) { FUNCTION_START(("name = \"%s\", perms = %d\n", name, mode)); @@ -1464,7 +1464,6 @@ bfs_create_dir(fs_volume* _volume, fs_vnode* _directory, const char* name, status = Inode::Create(transaction, directory, name, S_DIRECTORY | (mode & S_IUMSK), 0, 0, NULL, &id); if (status == B_OK) { - *_newVnodeID = id; put_vnode(volume->FSVolume(), id); entry_cache_add(volume->ID(), directory->ID(), name, id); diff --git a/src/add-ons/kernel/file_systems/fat/file.c b/src/add-ons/kernel/file_systems/fat/file.c index 8f14df5f48..441a707f8c 100644 --- a/src/add-ons/kernel/file_systems/fat/file.c +++ b/src/add-ons/kernel/file_systems/fat/file.c @@ -925,8 +925,7 @@ bi: if (result != B_OK) free(cookie); status_t -dosfs_mkdir(fs_volume *_vol, fs_vnode *_dir, const char *name, int perms, - ino_t *_vnid) +dosfs_mkdir(fs_volume *_vol, fs_vnode *_dir, const char *name, int perms) { nspace *vol = (nspace *)_vol->private_volume; vnode *dir = (vnode *)_dir->private_node, dummy; diff --git a/src/add-ons/kernel/file_systems/fat/file.h b/src/add-ons/kernel/file_systems/fat/file.h index 19fd6b0e39..94dc1a0753 100644 --- a/src/add-ons/kernel/file_systems/fat/file.h +++ b/src/add-ons/kernel/file_systems/fat/file.h @@ -24,7 +24,7 @@ status_t dosfs_remove_vnode(fs_volume *vol, fs_vnode *node, bool reenter); status_t dosfs_create(fs_volume *vol, fs_vnode *dir, const char *name, int omode, int perms, void **cookie, ino_t *vnid); status_t dosfs_mkdir(fs_volume *vol, fs_vnode *dir, const char *name, - int perms, ino_t *_vnid); + int perms); status_t dosfs_rename(fs_volume *vol, fs_vnode *olddir, const char *oldname, fs_vnode *newdir, const char *newname); status_t dosfs_unlink(fs_volume *vol, fs_vnode *dir, const char *name); diff --git a/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp b/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp index b1a12b6339..4f524021b7 100644 --- a/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp +++ b/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp @@ -527,8 +527,16 @@ AttributeFile::WriteAttributeFile(fs_volume *overlay, fs_volume *volume, // create the attribute directory result = currentVnode.ops->create_dir(volume, ¤tVnode, - ATTRIBUTE_OVERLAY_ATTRIBUTE_DIR_NAME, S_IRWXU | S_IRWXG | S_IRWXO, - &fAttributeDirInode); + ATTRIBUTE_OVERLAY_ATTRIBUTE_DIR_NAME, S_IRWXU | S_IRWXG | S_IRWXO); + + if (result == B_OK) { + result = currentVnode.ops->lookup(volume, ¤tVnode, + ATTRIBUTE_OVERLAY_ATTRIBUTE_DIR_NAME, &fAttributeDirInode); + + // lookup() got us a reference we don't need -- put it + if (result == B_OK) + put_vnode(volume, fAttributeDirInode); + } put_vnode(volume, fDirectoryInode); @@ -1290,9 +1298,9 @@ overlay_write(fs_volume *volume, fs_vnode *vnode, void *cookie, off_t pos, static status_t overlay_create_dir(fs_volume *volume, fs_vnode *vnode, const char *name, - int perms, ino_t *newVnodeID) + int perms) { - OVERLAY_CALL(create_dir, name, perms, newVnodeID) + OVERLAY_CALL(create_dir, name, perms) return B_UNSUPPORTED; } diff --git a/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp b/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp index dae23864ae..d4587dd802 100644 --- a/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp +++ b/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp @@ -118,8 +118,7 @@ public: status_t Write(void *cookie, off_t position, const void *buffer, size_t *length); - status_t CreateDir(const char *name, - int perms, ino_t *newInodeNumber); + status_t CreateDir(const char *name, int perms); status_t RemoveDir(const char *name); status_t OpenDir(void **cookie); status_t CloseDir(void *cookie); @@ -565,9 +564,9 @@ OverlayInode::Write(void *_cookie, off_t position, const void *buffer, status_t -OverlayInode::CreateDir(const char *name, int perms, ino_t *newInodeNumber) +OverlayInode::CreateDir(const char *name, int perms) { - return _CreateCommon(name, S_IFDIR, perms, newInodeNumber, NULL); + return _CreateCommon(name, S_IFDIR, perms, NULL, NULL); } @@ -1247,11 +1246,10 @@ overlay_write(fs_volume *volume, fs_vnode *vnode, void *cookie, off_t pos, static status_t overlay_create_dir(fs_volume *volume, fs_vnode *vnode, const char *name, - int perms, ino_t *newVnodeID) + int perms) { TRACE("create_dir: \"%s\"\n", name); - return ((OverlayInode *)vnode->private_node)->CreateDir(name, perms, - newVnodeID); + return ((OverlayInode *)vnode->private_node)->CreateDir(name, perms); } diff --git a/src/add-ons/kernel/file_systems/nfs/nfs_add_on.c b/src/add-ons/kernel/file_systems/nfs/nfs_add_on.c index a327c8de39..8802a3f651 100644 --- a/src/add-ons/kernel/file_systems/nfs/nfs_add_on.c +++ b/src/add-ons/kernel/file_systems/nfs/nfs_add_on.c @@ -1979,7 +1979,7 @@ fs_remove_vnode(fs_volume *_volume, fs_vnode *_node, bool r) } static status_t -fs_mkdir(fs_volume *_volume, fs_vnode *_dir, const char *name, int perms, ino_t *_newVnodeID) +fs_mkdir(fs_volume *_volume, fs_vnode *_dir, const char *name, int perms) { fs_nspace *ns; fs_node *dir; @@ -2066,8 +2066,6 @@ fs_mkdir(fs_volume *_volume, fs_vnode *_dir, const char *name, int perms, ino_t newNode->fhandle=fhandle; newNode->vnid=st.st_ino; - *_newVnodeID = newNode->vnid; - insert_node (ns,newNode); XDRInPacketDestroy (&reply); diff --git a/src/add-ons/kernel/file_systems/ntfs/fs_func.c b/src/add-ons/kernel/file_systems/ntfs/fs_func.c index 130d3e6025..fdd2411901 100644 --- a/src/add-ons/kernel/file_systems/ntfs/fs_func.c +++ b/src/add-ons/kernel/file_systems/ntfs/fs_func.c @@ -410,7 +410,7 @@ fs_read_vnode(fs_volume *_vol, ino_t vnid, fs_vnode *_node, int *_type, uint32 * _node->private_node = NULL; _node->ops = &gNTFSVnodeOps; - _flags = 0; + _flags = 0; newNode = (vnode*)ntfs_calloc( sizeof(vnode) ); if ( newNode != NULL ) { @@ -1285,7 +1285,7 @@ exit: status_t -fs_mkdir(fs_volume *_vol, fs_vnode *_dir, const char *name, int perms, ino_t *_vnid) +fs_mkdir(fs_volume *_vol, fs_vnode *_dir, const char *name, int perms) { nspace *ns = (nspace*)_vol->private_volume; vnode *dir = (vnode*)_dir->private_node; @@ -1345,8 +1345,6 @@ fs_mkdir(fs_volume *_vol, fs_vnode *_dir, const char *name, int perms, ino_t *_v result = publish_vnode(_vol, vnid, (void*)newNode,&gNTFSVnodeOps, 0777, 0); - *_vnid = vnid; - put_vnode(_vol, MREF(ni->mft_no)); ntfs_mark_free_space_outdated(ns); diff --git a/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp index 67cea12bd8..a82bf8e76a 100644 --- a/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp @@ -1075,8 +1075,7 @@ vint32 DirectoryCookie::fNextIteratorID = 0; // ramfs_create_dir static status_t -ramfs_create_dir(fs_volume fs, fs_vnode _dir, const char *name, - int mode, ino_t *_vnid) +ramfs_create_dir(fs_volume fs, fs_vnode _dir, const char *name, int mode) { FUNCTION(("name: `%s', mode: %x\n", name, mode)); Volume *volume = (Volume*)fs; @@ -1115,7 +1114,6 @@ ramfs_create_dir(fs_volume fs, fs_vnode _dir, const char *name, node->SetGID(getegid()); // put the node volume->PutVNode(node->GetID()); - *_vnid = node->GetID(); } } } diff --git a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp index e82c49417c..ff4327aba2 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.cpp @@ -2182,7 +2182,7 @@ Volume::Write(void* _node, void* cookie, off_t pos, const void* buffer, // CreateDir status_t -Volume::CreateDir(void* _dir, const char* name, int mode, ino_t *newDir) +Volume::CreateDir(void* _dir, const char* name, int mode) { VNode* vnode = (VNode*)_dir; @@ -2221,7 +2221,6 @@ Volume::CreateDir(void* _dir, const char* name, int mode, ino_t *newDir) // process the reply if (reply->error != B_OK) return reply->error; - *newDir = reply->newDir; return error; } diff --git a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.h b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.h index 8059d267e0..751e0b45dc 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.h +++ b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.h @@ -147,7 +147,7 @@ public: // directories status_t CreateDir(void* dir, const char* name, - int mode, ino_t *newDir); + int mode); status_t RemoveDir(void* dir, const char* name); status_t OpenDir(void* node, void** cookie); status_t CloseDir(void* node, void* cookie); diff --git a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/kernel_interface.cpp b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/kernel_interface.cpp index 46b72a1043..c6503b3f99 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/kernel_interface.cpp @@ -545,14 +545,13 @@ userlandfs_write(fs_volume* fsVolume, fs_vnode* fsNode, void* cookie, off_t pos, // userlandfs_create_dir static status_t userlandfs_create_dir(fs_volume* fsVolume, fs_vnode* fsParent, const char* name, - int perms, ino_t* newDir) + int perms) { Volume* volume = (Volume*)fsVolume->private_volume; - PRINT(("userlandfs_create_dir(%p, %p, `%s', %d, %p)\n", volume, - fsParent->private_node, name, perms, newDir)); - status_t error = volume->CreateDir(fsParent->private_node, name, perms, - newDir); - PRINT(("userlandfs_create_dir() done: (%lx, %lld)\n", error, *newDir)); + PRINT(("userlandfs_create_dir(%p, %p, `%s', %#x)\n", volume, + fsParent->private_node, name, perms)); + status_t error = volume->CreateDir(fsParent->private_node, name, perms); + PRINT(("userlandfs_create_dir() done: (%lx)\n", error)); return error; } diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/UserlandRequestHandler.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/UserlandRequestHandler.cpp index 2d6cddb39b..f5c92e4456 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/UserlandRequestHandler.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/server/UserlandRequestHandler.cpp @@ -1,4 +1,7 @@ -// UserlandRequestHandler.cpp +/* + * Copyright 2001-2009, Ingo Weinhold, ingo_weinhold@gmx.de. + * Distributed under the terms of the MIT License. + */ #include "UserlandRequestHandler.h" @@ -1314,11 +1317,10 @@ UserlandRequestHandler::_HandleRequest(CreateDirRequest* request) if (!volume) result = B_BAD_VALUE; - ino_t newDir = 0; if (result == B_OK) { RequestThreadContext context(volume); result = volume->CreateDir(request->node, - (const char*)request->name.GetData(), request->mode, &newDir); + (const char*)request->name.GetData(), request->mode); } // prepare the reply @@ -1329,7 +1331,6 @@ UserlandRequestHandler::_HandleRequest(CreateDirRequest* request) RETURN_ERROR(error); reply->error = result; - reply->newDir = newDir; // send the reply return _SendReply(allocator, false); diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/UserlandRequestHandler.h b/src/add-ons/kernel/file_systems/userlandfs/server/UserlandRequestHandler.h index d6847d0c4f..a2fc3b884b 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/UserlandRequestHandler.h +++ b/src/add-ons/kernel/file_systems/userlandfs/server/UserlandRequestHandler.h @@ -1,5 +1,7 @@ -// UserlandRequestHandler.h - +/* + * Copyright 2001-2009, Ingo Weinhold, ingo_weinhold@gmx.de. + * Distributed under the terms of the MIT License. + */ #ifndef USERLAND_FS_USERLAND_REQUEST_HANDLER_H #define USERLAND_FS_USERLAND_REQUEST_HANDLER_H diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/Volume.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/Volume.cpp index e393e38d0b..5c8f00c07f 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/Volume.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/server/Volume.cpp @@ -378,7 +378,7 @@ Volume::Write(void* node, void* cookie, off_t pos, const void* buffer, // CreateDir status_t -Volume::CreateDir(void* dir, const char* name, int mode, ino_t *newDir) +Volume::CreateDir(void* dir, const char* name, int mode) { return B_BAD_VALUE; } diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/Volume.h b/src/add-ons/kernel/file_systems/userlandfs/server/Volume.h index c921bed631..3f97b4002c 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/Volume.h +++ b/src/add-ons/kernel/file_systems/userlandfs/server/Volume.h @@ -114,7 +114,7 @@ public: // directories virtual status_t CreateDir(void* dir, const char* name, - int mode, ino_t *newDir); + int mode); virtual status_t RemoveDir(void* dir, const char* name); virtual status_t OpenDir(void* node, void** cookie); virtual status_t CloseDir(void* node, void* cookie); diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.cpp index 65d5790e1c..ca5d298807 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.cpp @@ -431,27 +431,12 @@ BeOSKernelVolume::Write(void* node, void* cookie, off_t pos, // CreateDir status_t -BeOSKernelVolume::CreateDir(void* dir, const char* name, int mode, - ino_t *newDir) +BeOSKernelVolume::CreateDir(void* dir, const char* name, int mode) { - if (!fFSOps->mkdir || !fFSOps->walk) // we need walk() too + if (!fFSOps->mkdir) return B_BAD_VALUE; - status_t error = fFSOps->mkdir(fVolumeCookie, dir, name, mode); - if (error != B_OK) - return error; - - // we need to get the node ID by invoking walk() - ino_t id; - error = fFSOps->walk(fVolumeCookie, dir, name, NULL, &id); - if (error != B_OK) - return error; - - // put the node for walk()'s get_vnode() - UserlandFS::KernelEmu::put_vnode(GetID(), id); - - *newDir = id; - return B_OK; + return fFSOps->mkdir(fVolumeCookie, dir, name, mode); } // RemoveDir diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.h b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.h index caf9b7ed58..5e428cff7c 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.h +++ b/src/add-ons/kernel/file_systems/userlandfs/server/beos/BeOSKernelVolume.h @@ -88,7 +88,7 @@ public: // directories virtual status_t CreateDir(void* dir, const char* name, - int mode, ino_t *newDir); + int mode); virtual status_t RemoveDir(void* dir, const char* name); virtual status_t OpenDir(void* node, void** cookie); virtual status_t CloseDir(void* node, void* cookie); diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.cpp index 74b2dfaadd..ac759040ba 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.cpp @@ -1155,7 +1155,7 @@ FUSEVolume::Write(void* _node, void* _cookie, off_t pos, const void* buffer, status_t -FUSEVolume::CreateDir(void* _dir, const char* name, int mode, ino_t *newDir) +FUSEVolume::CreateDir(void* _dir, const char* name, int mode) { FUSENode* dir = (FUSENode*)_dir; PRINT(("FUSEVolume::CreateDir(%p (%lld), \"%s\", %#x)\n", dir, dir->id, name, @@ -1184,9 +1184,6 @@ mode)); // TODO: Node monitoring! - *newDir = 0; - // TODO: This is really superfluous! - return B_OK; } diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.h b/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.h index 38709aa8ae..83728c27d9 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.h +++ b/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEVolume.h @@ -103,7 +103,7 @@ public: // directories virtual status_t CreateDir(void* dir, const char* name, - int mode, ino_t *newDir); + int mode); virtual status_t RemoveDir(void* dir, const char* name); virtual status_t OpenDir(void* node, void** cookie); virtual status_t CloseDir(void* node, void* cookie); diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.cpp b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.cpp index 418fb892da..e37e47279b 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.cpp +++ b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.cpp @@ -738,14 +738,13 @@ HaikuKernelVolume::Write(void* _node, void* cookie, off_t pos, // CreateDir status_t -HaikuKernelVolume::CreateDir(void* _dir, const char* name, int mode, - ino_t *newDir) +HaikuKernelVolume::CreateDir(void* _dir, const char* name, int mode) { HaikuKernelNode* dir = (HaikuKernelNode*)_dir; if (!dir->ops->create_dir) return B_BAD_VALUE; - return dir->ops->create_dir(&fVolume, dir, name, mode, newDir); + return dir->ops->create_dir(&fVolume, dir, name, mode); } // RemoveDir diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.h b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.h index 01c3bcd51e..5f8aa66902 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.h +++ b/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.h @@ -121,7 +121,7 @@ public: // directories virtual status_t CreateDir(void* dir, const char* name, - int mode, ino_t *newDir); + int mode); virtual status_t RemoveDir(void* dir, const char* name); virtual status_t OpenDir(void* node, void** cookie); virtual status_t CloseDir(void* node, void* cookie); diff --git a/src/system/kernel/device_manager/devfs.cpp b/src/system/kernel/device_manager/devfs.cpp index 54cdd0efb9..8190eb2402 100644 --- a/src/system/kernel/device_manager/devfs.cpp +++ b/src/system/kernel/device_manager/devfs.cpp @@ -1271,7 +1271,7 @@ devfs_write(fs_volume* _volume, fs_vnode* _vnode, void* _cookie, off_t pos, static status_t devfs_create_dir(fs_volume *_volume, fs_vnode *_dir, const char *name, - int perms, ino_t *_newVnodeID) + int perms) { struct devfs *fs = (struct devfs *)_volume->private_volume; struct devfs_vnode *dir = (struct devfs_vnode *)_dir->private_node; @@ -1294,7 +1294,6 @@ devfs_create_dir(fs_volume *_volume, fs_vnode *_dir, const char *name, hash_insert(sDeviceFileSystem->vnode_hash, vnode); devfs_insert_in_dir(dir, vnode); - *_newVnodeID = vnode->id; return B_OK; } diff --git a/src/system/kernel/fs/rootfs.cpp b/src/system/kernel/fs/rootfs.cpp index 0c99d895f8..67103ae8cb 100644 --- a/src/system/kernel/fs/rootfs.cpp +++ b/src/system/kernel/fs/rootfs.cpp @@ -607,15 +607,15 @@ rootfs_write(fs_volume *_volume, fs_vnode *vnode, void *cookie, static status_t rootfs_create_dir(fs_volume *_volume, fs_vnode *_dir, const char *name, - int mode, ino_t *_newID) + int mode) { struct rootfs *fs = (rootfs*)_volume->private_volume; struct rootfs_vnode *dir = (rootfs_vnode*)_dir->private_node; struct rootfs_vnode *vnode; status_t status = 0; - TRACE(("rootfs_create_dir: dir %p, name = '%s', perms = %d, id = 0x%Lx pointer id = %p\n", - dir, name, mode,*_newID, _newID)); + TRACE(("rootfs_create_dir: dir %p, name = '%s', perms = %d\n", dir, name, + mode)); mutex_lock(&fs->lock); diff --git a/src/system/kernel/fs/vfs.cpp b/src/system/kernel/fs/vfs.cpp index 4788844da3..a88500aa6a 100644 --- a/src/system/kernel/fs/vfs.cpp +++ b/src/system/kernel/fs/vfs.cpp @@ -5394,7 +5394,6 @@ dir_create_entry_ref(dev_t mountID, ino_t parentID, const char* name, int perms, bool kernel) { struct vnode* vnode; - ino_t newID; status_t status; if (name == NULL || *name == '\0') @@ -5408,7 +5407,7 @@ dir_create_entry_ref(dev_t mountID, ino_t parentID, const char* name, int perms, return status; if (HAS_FS_CALL(vnode, create_dir)) - status = FS_CALL(vnode, create_dir, name, perms, &newID); + status = FS_CALL(vnode, create_dir, name, perms); else status = EROFS; @@ -5422,7 +5421,6 @@ dir_create(int fd, char* path, int perms, bool kernel) { char filename[B_FILE_NAME_LENGTH]; struct vnode* vnode; - ino_t newID; status_t status; FUNCTION(("dir_create: path '%s', perms %d, kernel %d\n", path, perms, kernel)); @@ -5432,7 +5430,7 @@ dir_create(int fd, char* path, int perms, bool kernel) return status; if (HAS_FS_CALL(vnode, create_dir)) { - status = FS_CALL(vnode, create_dir, filename, perms, &newID); + status = FS_CALL(vnode, create_dir, filename, perms); } else status = EROFS; diff --git a/src/tools/fs_shell/vfs.cpp b/src/tools/fs_shell/vfs.cpp index 0072b540d2..e507622a86 100644 --- a/src/tools/fs_shell/vfs.cpp +++ b/src/tools/fs_shell/vfs.cpp @@ -3221,7 +3221,6 @@ static fssh_status_t dir_create_entry_ref(fssh_mount_id mountID, fssh_vnode_id parentID, const char *name, int perms, bool kernel) { struct vnode *vnode; - fssh_vnode_id newID; fssh_status_t status; if (name == NULL || *name == '\0') @@ -3234,7 +3233,7 @@ dir_create_entry_ref(fssh_mount_id mountID, fssh_vnode_id parentID, const char * return status; if (HAS_FS_CALL(vnode, create_dir)) - status = FS_CALL(vnode, create_dir, name, perms, &newID); + status = FS_CALL(vnode, create_dir, name, perms); else status = FSSH_EROFS; @@ -3248,7 +3247,6 @@ dir_create(int fd, char *path, int perms, bool kernel) { char filename[FSSH_B_FILE_NAME_LENGTH]; struct vnode *vnode; - fssh_vnode_id newID; fssh_status_t status; FUNCTION(("dir_create: path '%s', perms %d, kernel %d\n", path, perms, kernel)); @@ -3258,7 +3256,7 @@ dir_create(int fd, char *path, int perms, bool kernel) return status; if (HAS_FS_CALL(vnode, create_dir)) - status = FS_CALL(vnode, create_dir, filename, perms, &newID); + status = FS_CALL(vnode, create_dir, filename, perms); else status = FSSH_EROFS;