[haiku-commits] r35612 - haiku/trunk/src/add-ons/kernel/file_systems/nfs

  • From: anevilyak@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 25 Feb 2010 02:25:47 +0100 (CET)

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;


Other related posts: