Author: anevilyak Date: 2010-02-25 02:25:47 +0100 (Thu, 25 Feb 2010) New Revision: 35612 Changeset: http://dev.haiku-os.org/changeset/35612/haiku Ticket: http://dev.haiku-os.org/ticket/4661 Modified: haiku/trunk/src/add-ons/kernel/file_systems/nfs/nfs_add_on.c haiku/trunk/src/add-ons/kernel/file_systems/nfs/nfs_add_on.h Log: Patch by mjw: Fix browsing subdirectories in NFS. Partially fixes ticket #4661. Thanks! Modified: haiku/trunk/src/add-ons/kernel/file_systems/nfs/nfs_add_on.c =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/nfs/nfs_add_on.c 2010-02-24 21:52:04 UTC (rev 35611) +++ haiku/trunk/src/add-ons/kernel/file_systems/nfs/nfs_add_on.c 2010-02-25 01:25:47 UTC (rev 35612) @@ -839,7 +839,7 @@ current->vnid = vnid; _node->private_node = current; _node->ops = &sNFSVnodeOps; - *_type = 0; + *_type = current->mode; *_flags = 0; if (!r) @@ -891,6 +891,7 @@ } newNode->vnid=st.st_ino; + newNode->mode=st.st_mode; *vnid=newNode->vnid; insert_node (ns,newNode); @@ -1043,6 +1044,7 @@ 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_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 @@ 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 @@ 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 @@ 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 @@ newNode=(fs_node *)malloc(sizeof(fs_node)); newNode->fhandle=fhandle; newNode->vnid=st.st_ino; + newNode->mode=st.st_mode; insert_node (ns,newNode); Modified: haiku/trunk/src/add-ons/kernel/file_systems/nfs/nfs_add_on.h =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/nfs/nfs_add_on.h 2010-02-24 21:52:04 UTC (rev 35611) +++ haiku/trunk/src/add-ons/kernel/file_systems/nfs/nfs_add_on.h 2010-02-25 01:25:47 UTC (rev 35612) @@ -41,6 +41,7 @@ }; struct fs_node { + int mode; ino_t vnid; struct nfs_fhandle fhandle; struct fs_node *next;