From 5fb2be8872387f03c7f78e8734322f2b2588978c Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Sat, 16 Jun 2012 22:19:25 +0200 Subject: [PATCH] nfs4: Allow opening symbolic links --- src/add-ons/kernel/file_systems/nfs4/kernel_interface.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/file_systems/nfs4/kernel_interface.cpp b/src/add-ons/kernel/file_systems/nfs4/kernel_interface.cpp index 281fe9b371..48fe7a956f 100644 --- a/src/add-ons/kernel/file_systems/nfs4/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/nfs4/kernel_interface.cpp @@ -183,7 +183,7 @@ nfs4_open(fs_volume* volume, fs_vnode* vnode, int openMode, void** _cookie) { Inode* inode = reinterpret_cast(vnode->private_node); - if (inode->Type() == S_IFDIR) { + if (inode->Type() == S_IFDIR || inode->Type() == S_IFLNK) { *_cookie = NULL; return B_OK; } @@ -214,7 +214,7 @@ nfs4_free_cookie(fs_volume* volume, fs_vnode* vnode, void* _cookie) { Inode* inode = reinterpret_cast(vnode->private_node); - if (inode->Type() == S_IFDIR) + if (inode->Type() == S_IFDIR || inode->Type() == S_IFLNK) return B_OK; OpenFileCookie* cookie = reinterpret_cast(_cookie); @@ -234,6 +234,9 @@ nfs4_read(fs_volume* volume, fs_vnode* vnode, void* _cookie, off_t pos, if (inode->Type() == S_IFDIR) return B_IS_A_DIRECTORY; + if (inode->Type() == S_IFLNK) + return B_BAD_VALUE; + OpenFileCookie* cookie = reinterpret_cast(_cookie); return inode->Read(cookie, pos, buffer, length);