[haiku-commits] BRANCH pdziepak-github.nfs4 - src/add-ons/kernel/file_systems/nfs4

  • From: pdziepak-github.nfs4 <community@xxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 4 Apr 2013 15:45:53 +0200 (CEST)

added 2 changesets to branch 'refs/remotes/pdziepak-github/nfs4'
old head: 3d064796c7e4765e62811d3d17f94c015d9af85b
new head: 46bffd5839fc9a1cc8a2277ca5dea4664d082ec9
overview: https://github.com/pdziepak/Haiku/compare/3d06479...46bffd5

----------------------------------------------------------------------------

5f0e4e4: nfs4: make sure we have inode names required to get file handle

46bffd5: nfs4: minor improvements in VnodeToInode code * removal of now 
unnecessary NULL check * Clear() is Replace(NULL)

                                    [ Pawel Dziepak <pdziepak@xxxxxxxxxxx> ]

----------------------------------------------------------------------------

3 files changed, 8 insertions(+), 7 deletions(-)
src/add-ons/kernel/file_systems/nfs4/FileInfo.cpp     | 6 +++++-
src/add-ons/kernel/file_systems/nfs4/VnodeToInode.cpp | 2 +-
src/add-ons/kernel/file_systems/nfs4/VnodeToInode.h   | 7 ++-----

############################################################################

Commit:      5f0e4e4a8128c4f9556ab1fdde928d73a6225c4b
Author:      Pawel Dziepak <pdziepak@xxxxxxxxxxx>
Date:        Tue Mar 26 23:19:17 2013 UTC

nfs4: make sure we have inode names required to get file handle

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/file_systems/nfs4/FileInfo.cpp 
b/src/add-ons/kernel/file_systems/nfs4/FileInfo.cpp
index d620481..45f002d 100644
--- a/src/add-ons/kernel/file_systems/nfs4/FileInfo.cpp
+++ b/src/add-ons/kernel/file_systems/nfs4/FileInfo.cpp
@@ -148,8 +148,12 @@ FileInfo::UpdateFileHandles(FileSystem* fs)
 
        uint32 i;
        InodeNames* names = fNames;
-       for (i = 0; names != NULL; i++)
+       for (i = 0; names != NULL; i++) {
+               if (names->fNames.IsEmpty())
+                       return B_ENTRY_NOT_FOUND;
+
                names = names->fNames.Head()->fParent;
+       }
 
        if (i > 0) {
                names = fNames;

############################################################################

Commit:      46bffd5839fc9a1cc8a2277ca5dea4664d082ec9
Author:      Pawel Dziepak <pdziepak@xxxxxxxxxxx>
Date:        Tue Mar 26 23:25:12 2013 UTC

nfs4: minor improvements in VnodeToInode code * removal of now unnecessary NULL 
check * Clear() is Replace(NULL)

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/file_systems/nfs4/VnodeToInode.cpp 
b/src/add-ons/kernel/file_systems/nfs4/VnodeToInode.cpp
index 2e20cfc..6e260bc 100644
--- a/src/add-ons/kernel/file_systems/nfs4/VnodeToInode.cpp
+++ b/src/add-ons/kernel/file_systems/nfs4/VnodeToInode.cpp
@@ -27,7 +27,7 @@ void
 VnodeToInode::Replace(Inode* newInode)
 {
        WriteLocker _(fLock);
-       if (fInode != NULL && !IsRoot())
+       if (!IsRoot())
                delete fInode;
 
        fInode = newInode;
diff --git a/src/add-ons/kernel/file_systems/nfs4/VnodeToInode.h 
b/src/add-ons/kernel/file_systems/nfs4/VnodeToInode.h
index b75528a..ee04a45 100644
--- a/src/add-ons/kernel/file_systems/nfs4/VnodeToInode.h
+++ b/src/add-ons/kernel/file_systems/nfs4/VnodeToInode.h
@@ -72,7 +72,7 @@ VnodeToInode::VnodeToInode(ino_t id, FileSystem* fileSystem)
 inline
 VnodeToInode::~VnodeToInode()
 {
-       Replace(NULL);
+       Clear();
        if (fFileSystem != NULL && !IsRoot())
                fFileSystem->InoIdMap()->RemoveEntry(fID);
        rw_lock_destroy(&fLock);
@@ -96,10 +96,7 @@ VnodeToInode::Unlock()
 inline void
 VnodeToInode::Clear()
 {
-       WriteLocker _(fLock);
-       if (!IsRoot())
-               delete fInode;
-       fInode = NULL;
+       Replace(NULL);
 }
 
 


Other related posts: