Patch by mjw: Fix browsing subdirectories in NFS.

Partially fixes ticket #4661. Thanks!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35612 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rene Gollent
2010-02-25 01:25:47 +00:00
parent 36eb70516c
commit 1ac83b4fbc
2 changed files with 9 additions and 1 deletions
@@ -839,7 +839,7 @@ fs_read_vnode(fs_volume *_volume, ino_t vnid, fs_vnode *_node, int *_type,
current->vnid = vnid;
_node->private_node = current;
_node->ops = &sNFSVnodeOps;
*_type = 0;
*_type = current->mode;
*_flags = 0;
if (!r)
@@ -891,6 +891,7 @@ fs_walk(fs_volume *_volume, fs_vnode *_base, const char *file, ino_t *vnid)
}
newNode->vnid=st.st_ino;
newNode->mode=st.st_mode;
*vnid=newNode->vnid;
insert_node (ns,newNode);
@@ -1043,6 +1044,7 @@ fs_readdir(fs_volume *_volume, fs_vnode *_node, void *_cookie,
return result;
}
newNode->mode = st.st_mode;
insert_node (ns,newNode);
if (bufsize<2*(sizeof(dev_t)+sizeof(ino_t))+sizeof(unsigned short)+strlen(filename)+1)
@@ -1751,6 +1753,7 @@ fs_create(fs_volume *_volume, fs_vnode *_dir, const char *name, int omode, int p
fs_node *newNode=(fs_node *)malloc(sizeof(fs_node));
newNode->fhandle=fhandle;
newNode->vnid=st.st_ino;
newNode->mode=st.st_mode;
insert_node (ns,newNode);
*vnid=st.st_ino;
@@ -1840,6 +1843,7 @@ fs_create(fs_volume *_volume, fs_vnode *_dir, const char *name, int omode, int p
newNode=(fs_node *)malloc(sizeof(fs_node));
newNode->fhandle=fhandle;
newNode->vnid=st.st_ino;
newNode->mode=st.st_mode;
insert_node (ns,newNode);
@@ -1898,6 +1902,7 @@ fs_unlink(fs_volume *_volume, fs_vnode *_dir, const char *name)
newNode=(fs_node *)malloc(sizeof(fs_node));
newNode->fhandle=fhandle;
newNode->vnid=st.st_ino;
newNode->mode=st.st_mode;
insert_node (ns,newNode);
@@ -2065,6 +2070,7 @@ fs_mkdir(fs_volume *_volume, fs_vnode *_dir, const char *name, int perms)
newNode=(fs_node *)malloc(sizeof(fs_node));
newNode->fhandle=fhandle;
newNode->vnid=st.st_ino;
newNode->mode=st.st_mode;
insert_node (ns,newNode);
@@ -2190,6 +2196,7 @@ fs_rmdir(fs_volume *_volume, fs_vnode *_dir, const char *name)
newNode=(fs_node *)malloc(sizeof(fs_node));
newNode->fhandle=fhandle;
newNode->vnid=st.st_ino;
newNode->mode=st.st_mode;
insert_node (ns,newNode);
@@ -41,6 +41,7 @@ struct mount_nfs_params {
};
struct fs_node {
int mode;
ino_t vnid;
struct nfs_fhandle fhandle;
struct fs_node *next;