[haiku-commits] haiku: hrev52556 - src/add-ons/kernel/file_systems/netfs/server src/add-ons/kernel/file_systems/netfs/headers/shared src/add-ons/kernel/file_systems/netfs/client build/jam/packages

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 18 Nov 2018 14:37:43 -0500 (EST)

hrev52556 adds 2 changesets to branch 'master'
old head: 966c60f355b606d03da31f86080367b6dae635d8
new head: 59ecfa6cb620abe17a41ad72d746d8a35f671ad6
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=59ecfa6cb620+%5E966c60f355b6

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

f0d5e5b06264: userlandfs: Fix the BeOS frontend on 64-bit.

59ecfa6cb620: netfs: Fix and enable on 64-bit.

                              [ Augustin Cavalier <waddlesplash@xxxxxxxxx> ]

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

12 files changed, 42 insertions(+), 30 deletions(-)
build/jam/HaikuPackages                          |  2 +-
build/jam/packages/UserlandFS                    |  2 +-
build/jam/repositories/Haiku                     |  2 +-
.../file_systems/netfs/client/ShareVolume.cpp    | 10 ++++-----
.../file_systems/netfs/client/ShareVolume.h      |  2 +-
.../file_systems/netfs/headers/shared/Requests.h | 22 ++++++++++----------
.../netfs/server/ClientConnection.cpp            | 14 ++++++-------
.../file_systems/netfs/server/NetFSServer.cpp    |  2 +-
.../kernel/file_systems/netfs/server/Node.cpp    |  3 ++-
.../netfs/server/SecurityContext.cpp             |  9 ++++++++
.../file_systems/userlandfs/server/beos/Jamfile  |  2 ++
.../file_systems/userlandfs/server/beos/lock.h   |  2 +-

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

Commit:      f0d5e5b06264fc96566ec96049230de4404c73a3
URL:         https://git.haiku-os.org/haiku/commit/?id=f0d5e5b06264
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Sun Nov 18 19:36:28 2018 UTC

userlandfs: Fix the BeOS frontend on 64-bit.

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

diff --git a/build/jam/packages/UserlandFS b/build/jam/packages/UserlandFS
index 7f1c50a7d1..c702abbf0f 100644
--- a/build/jam/packages/UserlandFS
+++ b/build/jam/packages/UserlandFS
@@ -12,7 +12,7 @@ AddFilesToPackage servers : userlandfs_server ;
 
 # libs
 local userlandfsLibs = [ FFilterByBuildFeatures
-               libuserlandfs_beos_kernel.so@!x86_64
+               libuserlandfs_beos_kernel.so
                libuserlandfs_haiku_kernel.so
                libuserlandfs_fuse.so
        ]
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos/Jamfile 
b/src/add-ons/kernel/file_systems/userlandfs/server/beos/Jamfile
index 37868b1f90..d8f7741760 100644
--- a/src/add-ons/kernel/file_systems/userlandfs/server/beos/Jamfile
+++ b/src/add-ons/kernel/file_systems/userlandfs/server/beos/Jamfile
@@ -4,6 +4,8 @@ local userlandFSTop = [ FDirName $(HAIKU_TOP) src add-ons kernel
        file_systems userlandfs ] ;
 local userlandFSIncludes = [ PrivateHeaders userlandfs ] ;
 
+SubDirCcFlags -Wno-error=format ;
+
 SubDirSysHdrs [ FDirName $(userlandFSIncludes) ] ;
 SubDirHdrs [ FDirName $(userlandFSIncludes) private ] ;
 SubDirHdrs [ FDirName $(userlandFSIncludes) shared ] ;
diff --git a/src/add-ons/kernel/file_systems/userlandfs/server/beos/lock.h 
b/src/add-ons/kernel/file_systems/userlandfs/server/beos/lock.h
index 8e0e133e6b..98582c8dd7 100644
--- a/src/add-ons/kernel/file_systems/userlandfs/server/beos/lock.h
+++ b/src/add-ons/kernel/file_systems/userlandfs/server/beos/lock.h
@@ -24,7 +24,7 @@
 
 struct beos_lock {
        sem_id          s;
-       long            c;
+       int32           c;
 };
 
 struct beos_mlock {

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

Revision:    hrev52556
Commit:      59ecfa6cb620abe17a41ad72d746d8a35f671ad6
URL:         https://git.haiku-os.org/haiku/commit/?id=59ecfa6cb620
Author:      Augustin Cavalier <waddlesplash@xxxxxxxxx>
Date:        Sun Nov 18 19:37:06 2018 UTC

netfs: Fix and enable on 64-bit.

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

diff --git a/build/jam/HaikuPackages b/build/jam/HaikuPackages
index 76f131fe00..8efe6419cf 100644
--- a/build/jam/HaikuPackages
+++ b/build/jam/HaikuPackages
@@ -8,7 +8,7 @@ local packages = [ FFilterByBuildFeatures
        HaikuUserguide
        HaikuWelcome
        MakefileEngine
-       NetFS@!x86_64
+       NetFS
        UserlandFS
        ]
        ;
diff --git a/build/jam/repositories/Haiku b/build/jam/repositories/Haiku
index 6cd12a8e94..9ea56dd6b3 100644
--- a/build/jam/repositories/Haiku
+++ b/build/jam/repositories/Haiku
@@ -40,7 +40,7 @@ if $(HAIKU_IS_BOOTSTRAP) != 1 {
                haiku_userguide_zh_CN
                haiku_welcome
                makefile_engine
-               netfs@!x86_64
+               netfs
                userland_fs
                ] ;
 }
diff --git a/src/add-ons/kernel/file_systems/netfs/client/ShareVolume.cpp 
b/src/add-ons/kernel/file_systems/netfs/client/ShareVolume.cpp
index 01ef34646d..243d8ad296 100644
--- a/src/add-ons/kernel/file_systems/netfs/client/ShareVolume.cpp
+++ b/src/add-ons/kernel/file_systems/netfs/client/ShareVolume.cpp
@@ -132,7 +132,7 @@ struct ShareVolume::AttrDirCookie {
        }
 
        ShareAttrDirIterator*   iterator;
-       int32                                   cookie;
+       intptr_t                                cookie;
        bool                                    rewind;
 };
 
@@ -747,7 +747,7 @@ ShareVolume::Close(Node* _node, void* cookie)
 status_t
 ShareVolume::FreeCookie(Node* _node, void* cookie)
 {
-       return _Close((int32)cookie);
+       return _Close((intptr_t)cookie);
 }
 
 // Read
@@ -765,7 +765,7 @@ ShareVolume::Read(Node* _node, void* cookie, off_t pos, 
void* _buffer,
        // prepare the request
        ReadRequest request;
        request.volumeID = fID;
-       request.cookie = (int32)cookie;
+       request.cookie = (intptr_t)cookie;
        request.pos = pos;
        request.size = bufferSize;
 
@@ -861,7 +861,7 @@ ShareVolume::Write(Node* _node, void* cookie, off_t pos, 
const void* _buffer,
                // prepare the request
                WriteRequest request;
                request.volumeID = fID;
-               request.cookie = (int32)cookie;
+               request.cookie = (intptr_t)cookie;
                request.pos = pos;
                request.data.SetTo(buffer, toWrite);
 
@@ -2951,7 +2951,7 @@ ShareVolume::_MultiWalk(RequestMemberArray<EntryInfo>& 
_entryInfos,
 
 // _Close
 status_t
-ShareVolume::_Close(int32 cookie)
+ShareVolume::_Close(intptr_t cookie)
 {
        if (!_EnsureShareMounted())
                return ERROR_NOT_CONNECTED;
diff --git a/src/add-ons/kernel/file_systems/netfs/client/ShareVolume.h 
b/src/add-ons/kernel/file_systems/netfs/client/ShareVolume.h
index 93b7aa1acf..8b0bfe6e3a 100644
--- a/src/add-ons/kernel/file_systems/netfs/client/ShareVolume.h
+++ b/src/add-ons/kernel/file_systems/netfs/client/ShareVolume.h
@@ -217,7 +217,7 @@ private:
                        status_t                        _MultiWalk(
                                                                        
RequestMemberArray<EntryInfo>& entryInfos,
                                                                        
MultiWalkReply** reply);
-                       status_t                        _Close(int32 cookie);
+                       status_t                        _Close(intptr_t cookie);
 
                        uint32                          _GetConnectionState();
                        bool                            _IsConnected();
diff --git a/src/add-ons/kernel/file_systems/netfs/headers/shared/Requests.h 
b/src/add-ons/kernel/file_systems/netfs/headers/shared/Requests.h
index 0d0c878209..e1655a42fb 100644
--- a/src/add-ons/kernel/file_systems/netfs/headers/shared/Requests.h
+++ b/src/add-ons/kernel/file_systems/netfs/headers/shared/Requests.h
@@ -468,7 +468,7 @@ struct CreateFileReply : ReplyRequest {
        }
 
        EntryInfo               entryInfo;
-       int32                   cookie;
+       intptr_t                cookie;
 };
 
 // OpenRequest
@@ -500,7 +500,7 @@ struct OpenReply : ReplyRequest {
        }
 
        NodeInfo                nodeInfo;
-       int32                   cookie;
+       intptr_t                cookie;
 };
 
 // CloseRequest
@@ -514,7 +514,7 @@ struct CloseRequest : VolumeRequest {
                visitor->Visit(this, cookie);
        }
 
-       int32                   cookie;
+       intptr_t                cookie;
 };
 
 // CloseReply
@@ -542,7 +542,7 @@ struct ReadRequest : VolumeRequest {
                visitor->Visit(this, size);
        }
 
-       int32                   cookie;
+       intptr_t                cookie;
        off_t                   pos;
        int32                   size;
 };
@@ -578,7 +578,7 @@ struct WriteRequest : VolumeRequest {
                visitor->Visit(this, data);
        }
 
-       int32                   cookie;
+       intptr_t                cookie;
        off_t                   pos;
        Data                    data;
 };
@@ -825,7 +825,7 @@ struct OpenDirReply : ReplyRequest {
        }
 
        NodeInfo                nodeInfo;
-       int32                   cookie;
+       intptr_t                cookie;
 };
 
 // ReadDirRequest
@@ -841,7 +841,7 @@ struct ReadDirRequest : VolumeRequest {
                visitor->Visit(this, rewind);
        }
 
-       int32                   cookie;
+       intptr_t                cookie;
        int32                   count;
        bool                    rewind;
 };
@@ -955,7 +955,7 @@ struct OpenAttrDirReply : ReplyRequest {
        }
 
        AttrDirInfo             attrDirInfo;
-       int32                   cookie;
+       intptr_t                cookie;
 };
 
 // ReadAttrDirRequest
@@ -970,7 +970,7 @@ struct ReadAttrDirRequest : VolumeRequest {
                visitor->Visit(this, rewind);
        }
 
-       int32                   cookie;
+       intptr_t                cookie;
        int32                   count;
        bool                    rewind;
 };
@@ -1180,7 +1180,7 @@ struct OpenQueryReply : ReplyRequest {
                visitor->Visit(this, cookie);
        }
 
-       int32                   cookie;
+       intptr_t                cookie;
 };
 
 // ReadQueryRequest
@@ -1193,7 +1193,7 @@ struct ReadQueryRequest : Request {
                visitor->Visit(this, cookie);
        }
 
-       int32                   cookie;
+       intptr_t                cookie;
        int32                   count;
 };
 
diff --git a/src/add-ons/kernel/file_systems/netfs/server/ClientConnection.cpp 
b/src/add-ons/kernel/file_systems/netfs/server/ClientConnection.cpp
index a224f736f1..873cfe984c 100644
--- a/src/add-ons/kernel/file_systems/netfs/server/ClientConnection.cpp
+++ b/src/add-ons/kernel/file_systems/netfs/server/ClientConnection.cpp
@@ -2046,15 +2046,15 @@ ClientConnection::VisitReadAttrRequest(ReadAttrRequest* 
request)
                // the size of the attribute.
                attr_info info;
                result = handle->StatAttr(request->name.GetString(), &info);
-               off_t originalPos = max(request->pos, 0LL);
-               int32 originalSize = max(request->size, 0L);
+               off_t originalPos = max(request->pos, (off_t)0);
+               int32 originalSize = max(request->size, (int32)0);
                off_t pos = originalPos;
                int32 size = originalSize;
                type_code type = B_SWAP_INT32(request->type);
                bool convert = false;
 
                if (result == B_OK) {
-                       originalSize = min((off_t)originalSize, max(0LL, 
info.size - pos));
+                       originalSize = min((off_t)originalSize, max((off_t)0, 
info.size - pos));
                        size = originalSize;
 
                        // deal with inverse endianess clients
@@ -2193,7 +2193,7 @@ ClientConnection::VisitWriteAttrRequest(WriteAttrRequest* 
request)
        managerLocker.Unlock();
 
        if (result == B_OK) {
-               off_t pos = max(request->pos, 0LL);
+               off_t pos = max(request->pos, (off_t)0);
                int32 size = request->data.GetSize();
                type_code type = request->type;
                char* buffer = (char*)request->data.GetData();
@@ -2204,8 +2204,8 @@ ClientConnection::VisitWriteAttrRequest(WriteAttrRequest* 
request)
                                if (pos != 0) {
                                        WARN("WriteAttr(): WARNING: Need to 
convert attribute "
                                                "endianess, but position is not 
0: attribute: %s, "
-                                               "pos: %lld, size: %ld\n", 
request->name.GetString(),
-                                               pos, size);
+                                               "pos: %" B_PRIdOFF ", size: %" 
B_PRId32 "\n",
+                                               request->name.GetString(), pos, 
size);
                                }
                                swap_data(type, buffer, size, B_SWAP_ALWAYS);
                        } else
@@ -2571,7 +2571,7 @@ ClientConnection::ProcessQueryEvent(NodeMonitoringEvent* 
event)
        } else {
                // We only support "entry created" and "entry removed" query 
events.
                // "entry moved" is split by the volume manager into those.
-               ERROR("Ignoring unexpected query event: opcode: 0x%lx\n",
+               ERROR("Ignoring unexpected query event: opcode: 0x%" B_PRIx32 
"\n",
                        event->opcode);
                return;
        }
diff --git a/src/add-ons/kernel/file_systems/netfs/server/NetFSServer.cpp 
b/src/add-ons/kernel/file_systems/netfs/server/NetFSServer.cpp
index 4bcf77dc39..324b271243 100644
--- a/src/add-ons/kernel/file_systems/netfs/server/NetFSServer.cpp
+++ b/src/add-ons/kernel/file_systems/netfs/server/NetFSServer.cpp
@@ -1150,7 +1150,7 @@ NetFSServer::_ConnectionDeleter()
                ClientConnection* connection = NULL;
                if (error == B_OK) {
                        AutoLocker<Locker> _(fLock);
-                       connection = 
(ClientConnection*)fClosedConnections.RemoveItem(0L);
+                       connection = 
(ClientConnection*)fClosedConnections.RemoveItem((int32)0);
                }
                if (connection)
                        delete connection;
diff --git a/src/add-ons/kernel/file_systems/netfs/server/Node.cpp 
b/src/add-ons/kernel/file_systems/netfs/server/Node.cpp
index b36c78a726..de79068c33 100644
--- a/src/add-ons/kernel/file_systems/netfs/server/Node.cpp
+++ b/src/add-ons/kernel/file_systems/netfs/server/Node.cpp
@@ -151,7 +151,8 @@ Node::UpdateStat()
        // check if it is the same node
        if (st.st_dev != fStat.st_dev || st.st_ino != fStat.st_ino) {
                ERROR("Node::UpdateStat(): ERROR: GetPath() returned path that "
-                       "doesn't point to this node: node: (%ld, %lld), path: 
`%s'\n",
+                       "doesn't point to this node: node: (%" B_PRIdDEV ", %" 
B_PRIdINO "), "
+                       "path: `%s'\n",
                        GetVolumeID(), GetID(), path.GetPath());
                return B_ENTRY_NOT_FOUND;
        }
diff --git a/src/add-ons/kernel/file_systems/netfs/server/SecurityContext.cpp 
b/src/add-ons/kernel/file_systems/netfs/server/SecurityContext.cpp
index 8662ac0b53..df39137fda 100644
--- a/src/add-ons/kernel/file_systems/netfs/server/SecurityContext.cpp
+++ b/src/add-ons/kernel/file_systems/netfs/server/SecurityContext.cpp
@@ -329,7 +329,12 @@ struct SecurityContext::UserPath {
 
        uint32 GetHashCode() const
        {
+#ifdef B_HAIKU_64_BIT
+               uint64 v = (uint64)user;
+               return (path.GetHashCode() * 31) + ((uint32)(v >> 32) ^ 
(uint32)v);
+#else
                return path.GetHashCode() * 31 + (uint32)user;
+#endif
        }
 
        UserPath& operator=(const UserPath& other)
@@ -520,7 +525,11 @@ SecurityContext::Archive(BMessage* archive, bool deep) 
const
        if (!tmpUserArchives)
                return B_NO_MEMORY;
        ArrayDeleter<BMessage> deleter(tmpUserArchives);
+#ifdef B_HAIKU_64_BIT
+       HashMap<HashKey64<User*>, BMessage*> userArchives;
+#else
        HashMap<HashKey32<User*>, BMessage*> userArchives;
+#endif
        int32 i = 0;
        for (UserMap::Iterator it = fUsers->GetIterator(); it.HasNext();) {
                User* user = it.Next().value;


Other related posts:

  • » [haiku-commits] haiku: hrev52556 - src/add-ons/kernel/file_systems/netfs/server src/add-ons/kernel/file_systems/netfs/headers/shared src/add-ons/kernel/file_systems/netfs/client build/jam/packages - waddlesplash