From bfcf4c574ab1856dbfa90b5bee63621c8bcfc468 Mon Sep 17 00:00:00 2001 From: Adam Simpkins Date: Mon, 19 Mar 2018 17:01:15 -0700 Subject: [PATCH] remove the fusell namespace Summary: Move everything in the `facebook::eden::fusell` namespace to `facebook::eden` Reviewed By: chadaustin Differential Revision: D7314458 fbshipit-source-id: db56d3e5fb898235e1376ac76077cf780d9b4698 --- eden/fs/fuse/BufVec.cpp | 5 +- eden/fs/fuse/BufVec.h | 3 +- eden/fs/fuse/DirHandle.h | 8 +- eden/fs/fuse/DirList.cpp | 5 +- eden/fs/fuse/DirList.h | 4 +- eden/fs/fuse/Dispatcher.cpp | 63 +++++------- eden/fs/fuse/Dispatcher.h | 67 +++++-------- eden/fs/fuse/EdenStats.cpp | 5 +- eden/fs/fuse/EdenStats.h | 3 +- eden/fs/fuse/FileHandle.cpp | 4 +- eden/fs/fuse/FileHandle.h | 5 +- eden/fs/fuse/FileHandleBase.cpp | 5 +- eden/fs/fuse/FileHandleBase.h | 11 +-- eden/fs/fuse/FileHandleMap.cpp | 2 - eden/fs/fuse/FileHandleMap.h | 8 +- eden/fs/fuse/FuseChannel.cpp | 76 ++++++-------- eden/fs/fuse/FuseChannel.h | 7 +- eden/fs/fuse/FuseTypes.cpp | 2 - eden/fs/fuse/FuseTypes.h | 19 ++-- eden/fs/fuse/PollHandle.cpp | 5 +- eden/fs/fuse/PollHandle.h | 3 +- eden/fs/fuse/RequestData.cpp | 5 +- eden/fs/fuse/RequestData.h | 3 +- eden/fs/fuse/fuse_tester/main.cpp | 3 +- eden/fs/fuse/privhelper/PrivHelper.cpp | 3 - eden/fs/fuse/privhelper/PrivHelper.h | 4 +- eden/fs/fuse/privhelper/PrivHelperConn.cpp | 3 +- eden/fs/fuse/privhelper/PrivHelperConn.h | 3 +- eden/fs/fuse/privhelper/PrivHelperServer.cpp | 3 +- eden/fs/fuse/privhelper/PrivHelperServer.h | 5 +- .../fuse/privhelper/test/PrivHelperTest.cpp | 2 +- .../privhelper/test/PrivHelperTestServer.cpp | 3 +- .../privhelper/test/PrivHelperTestServer.h | 3 +- eden/fs/fuse/test/BufVecTest.cpp | 2 +- eden/fs/fuse/test/FileHandleMapTest.cpp | 13 ++- eden/fs/fuse/test/FuseChannelTest.cpp | 1 - eden/fs/inodes/EdenDispatcher.cpp | 61 ++++++------ eden/fs/inodes/EdenDispatcher.h | 66 ++++++------- eden/fs/inodes/EdenFileHandle.cpp | 10 +- eden/fs/inodes/EdenFileHandle.h | 14 +-- eden/fs/inodes/EdenMount.cpp | 6 +- eden/fs/inodes/EdenMount.h | 23 ++--- eden/fs/inodes/FileInode.cpp | 26 ++--- eden/fs/inodes/FileInode.h | 21 ++-- eden/fs/inodes/InodeBase.cpp | 6 +- eden/fs/inodes/InodeBase.h | 17 ++-- eden/fs/inodes/InodeMap.cpp | 75 +++++++------- eden/fs/inodes/InodeMap.h | 98 +++++++++---------- eden/fs/inodes/Overlay.cpp | 27 +++-- eden/fs/inodes/Overlay.h | 18 ++-- eden/fs/inodes/ServerState.h | 4 +- eden/fs/inodes/TreeInode.cpp | 46 +++++---- eden/fs/inodes/TreeInode.h | 42 ++++---- eden/fs/inodes/TreeInodeDirHandle.cpp | 15 ++- eden/fs/inodes/TreeInodeDirHandle.h | 12 +-- eden/fs/inodes/test/FileInodeTest.cpp | 10 +- eden/fs/service/EdenServer.cpp | 19 ++-- eden/fs/service/EdenServer.h | 2 +- eden/fs/service/EdenServiceHandler.cpp | 2 +- eden/fs/service/main.cpp | 1 - eden/fs/testharness/TestDispatcher.cpp | 4 +- eden/fs/testharness/TestDispatcher.h | 8 +- 62 files changed, 437 insertions(+), 562 deletions(-) diff --git a/eden/fs/fuse/BufVec.cpp b/eden/fs/fuse/BufVec.cpp index 6545ee662f..fd00b1c044 100644 --- a/eden/fs/fuse/BufVec.cpp +++ b/eden/fs/fuse/BufVec.cpp @@ -7,11 +7,10 @@ * of patent rights can be found in the PATENTS file in the same directory. * */ -#include "BufVec.h" +#include "eden/fs/fuse/BufVec.h" namespace facebook { namespace eden { -namespace fusell { BufVec::Buf::Buf(std::unique_ptr buf) : buf(std::move(buf)) {} @@ -51,6 +50,6 @@ std::string BufVec::copyData() const { } return rv; } -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/BufVec.h b/eden/fs/fuse/BufVec.h index 5bf46c48fc..38fa8cd168 100644 --- a/eden/fs/fuse/BufVec.h +++ b/eden/fs/fuse/BufVec.h @@ -13,7 +13,6 @@ namespace facebook { namespace eden { -namespace fusell { /** * Represents data that may come from a buffer or a file descriptor. @@ -63,6 +62,6 @@ class BufVec { */ std::string copyData() const; }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/DirHandle.h b/eden/fs/fuse/DirHandle.h index 2715ad4294..895e10679a 100644 --- a/eden/fs/fuse/DirHandle.h +++ b/eden/fs/fuse/DirHandle.h @@ -8,12 +8,12 @@ * */ #pragma once -#include "DirList.h" -#include "FileHandleBase.h" +#include "eden/fs/fuse/FileHandleBase.h" namespace facebook { namespace eden { -namespace fusell { + +class DirList; class DirHandle : public FileHandleBase { public: @@ -35,6 +35,6 @@ class DirHandle : public FileHandleBase { */ virtual folly::Future fsyncdir(bool datasync) = 0; }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/DirList.cpp b/eden/fs/fuse/DirList.cpp index bba316c733..f4b470b87d 100644 --- a/eden/fs/fuse/DirList.cpp +++ b/eden/fs/fuse/DirList.cpp @@ -7,7 +7,7 @@ * of patent rights can be found in the PATENTS file in the same directory. * */ -#include "DirList.h" +#include "eden/fs/fuse/DirList.h" #include "eden/fs/fuse/FuseTypes.h" @@ -15,7 +15,6 @@ using folly::StringPiece; namespace facebook { namespace eden { -namespace fusell { DirList::DirList(size_t maxSize) : buf_(new char[maxSize]), end_(buf_.get() + maxSize), cur_(buf_.get()) {} @@ -51,6 +50,6 @@ bool DirList::add(StringPiece name, const struct stat& st, off_t off) { StringPiece DirList::getBuf() const { return StringPiece(buf_.get(), cur_ - buf_.get()); } -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/DirList.h b/eden/fs/fuse/DirList.h index 55804cbc02..828c476729 100644 --- a/eden/fs/fuse/DirList.h +++ b/eden/fs/fuse/DirList.h @@ -10,11 +10,11 @@ #pragma once #include #include +#include #include "eden/fs/utils/DirType.h" namespace facebook { namespace eden { -namespace fusell { /** * Helper for populating directory listings. @@ -46,6 +46,6 @@ class DirList { folly::StringPiece getBuf() const; }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/Dispatcher.cpp b/eden/fs/fuse/Dispatcher.cpp index 0b27870ccb..f0df01ab46 100644 --- a/eden/fs/fuse/Dispatcher.cpp +++ b/eden/fs/fuse/Dispatcher.cpp @@ -25,7 +25,6 @@ using namespace std::chrono; namespace facebook { namespace eden { -namespace fusell { Dispatcher::Attr::Attr(const struct stat& st, uint64_t timeout) : st(st), timeout_seconds(timeout) {} @@ -81,35 +80,34 @@ void Dispatcher::initConnection(const fuse_init_out& out) { void Dispatcher::destroy() {} folly::Future Dispatcher::lookup( - fusell::InodeNumber /*parent*/, + InodeNumber /*parent*/, PathComponentPiece /*name*/) { throwSystemErrorExplicit(ENOENT); } folly::Future Dispatcher::forget( - fusell::InodeNumber /*ino*/, + InodeNumber /*ino*/, unsigned long /*nlookup*/) { return Unit{}; } -folly::Future Dispatcher::getattr( - fusell::InodeNumber /*ino*/) { +folly::Future Dispatcher::getattr(InodeNumber /*ino*/) { throwSystemErrorExplicit(ENOENT); } folly::Future Dispatcher::setattr( - fusell::InodeNumber /*ino*/, + InodeNumber /*ino*/, const fuse_setattr_in& /*attr*/ ) { FUSELL_NOT_IMPL(); } -folly::Future Dispatcher::readlink(fusell::InodeNumber /*ino*/) { +folly::Future Dispatcher::readlink(InodeNumber /*ino*/) { FUSELL_NOT_IMPL(); } folly::Future Dispatcher::mknod( - fusell::InodeNumber /*parent*/, + InodeNumber /*parent*/, PathComponentPiece /*name*/, mode_t /*mode*/, dev_t /*rdev*/) { @@ -117,56 +115,49 @@ folly::Future Dispatcher::mknod( } folly::Future -Dispatcher::mkdir(fusell::InodeNumber, PathComponentPiece, mode_t) { +Dispatcher::mkdir(InodeNumber, PathComponentPiece, mode_t) { FUSELL_NOT_IMPL(); } -folly::Future Dispatcher::unlink( - fusell::InodeNumber, - PathComponentPiece) { +folly::Future Dispatcher::unlink(InodeNumber, PathComponentPiece) { FUSELL_NOT_IMPL(); } -folly::Future Dispatcher::rmdir( - fusell::InodeNumber, - PathComponentPiece) { +folly::Future Dispatcher::rmdir(InodeNumber, PathComponentPiece) { FUSELL_NOT_IMPL(); } -folly::Future Dispatcher::symlink( - fusell::InodeNumber, - PathComponentPiece, - folly::StringPiece) { +folly::Future +Dispatcher::symlink(InodeNumber, PathComponentPiece, folly::StringPiece) { FUSELL_NOT_IMPL(); } folly::Future Dispatcher::rename( - fusell::InodeNumber, + InodeNumber, PathComponentPiece, - fusell::InodeNumber, + InodeNumber, PathComponentPiece) { FUSELL_NOT_IMPL(); } folly::Future -Dispatcher::link(fusell::InodeNumber, fusell::InodeNumber, PathComponentPiece) { +Dispatcher::link(InodeNumber, InodeNumber, PathComponentPiece) { FUSELL_NOT_IMPL(); } folly::Future> Dispatcher::open( - fusell::InodeNumber /*ino*/, + InodeNumber /*ino*/, int /*flags*/) { FUSELL_NOT_IMPL(); } folly::Future> Dispatcher::opendir( - fusell::InodeNumber /*ino*/, + InodeNumber /*ino*/, int /*flags*/) { FUSELL_NOT_IMPL(); } -folly::Future Dispatcher::statfs( - fusell::InodeNumber /*ino*/) { +folly::Future Dispatcher::statfs(InodeNumber /*ino*/) { struct fuse_kstatfs info = {}; // Suggest a large blocksize to software that looks at that kind of thing @@ -189,7 +180,7 @@ folly::Future Dispatcher::statfs( } folly::Future Dispatcher::setxattr( - fusell::InodeNumber /*ino*/, + InodeNumber /*ino*/, folly::StringPiece /*name*/, folly::StringPiece /*value*/, int /*flags*/) { @@ -205,24 +196,24 @@ const int Dispatcher::kENOATTR = ; folly::Future Dispatcher::getxattr( - fusell::InodeNumber /*ino*/, + InodeNumber /*ino*/, folly::StringPiece /*name*/) { throwSystemErrorExplicit(kENOATTR); } folly::Future> Dispatcher::listxattr( - fusell::InodeNumber /*ino*/) { + InodeNumber /*ino*/) { return std::vector(); } folly::Future Dispatcher::removexattr( - fusell::InodeNumber /*ino*/, + InodeNumber /*ino*/, folly::StringPiece /*name*/) { FUSELL_NOT_IMPL(); } folly::Future Dispatcher::access( - fusell::InodeNumber /*ino*/, + InodeNumber /*ino*/, int /*mask*/) { // Note that if you mount with the "default_permissions" kernel mount option, // the kernel will perform all permissions checks for you, and will never @@ -234,14 +225,12 @@ folly::Future Dispatcher::access( } folly::Future -Dispatcher::create(fusell::InodeNumber, PathComponentPiece, mode_t, int) { +Dispatcher::create(InodeNumber, PathComponentPiece, mode_t, int) { FUSELL_NOT_IMPL(); } -folly::Future Dispatcher::bmap( - fusell::InodeNumber /*ino*/, - size_t /*blocksize*/, - uint64_t /*idx*/) { +folly::Future +Dispatcher::bmap(InodeNumber /*ino*/, size_t /*blocksize*/, uint64_t /*idx*/) { FUSELL_NOT_IMPL(); } @@ -252,6 +241,6 @@ const fuse_init_out& Dispatcher::getConnInfo() const { ThreadLocalEdenStats* Dispatcher::getStats() const { return stats_; } -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/Dispatcher.h b/eden/fs/fuse/Dispatcher.h index 625d2694b1..1cadd02009 100644 --- a/eden/fs/fuse/Dispatcher.h +++ b/eden/fs/fuse/Dispatcher.h @@ -25,7 +25,6 @@ class Future; namespace facebook { namespace eden { -namespace fusell { #define FUSELL_NOT_IMPL() \ do { \ @@ -80,7 +79,7 @@ class Dispatcher { * Lookup a directory entry by name and get its attributes */ virtual folly::Future lookup( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name); /** @@ -103,7 +102,7 @@ class Dispatcher { * @param nlookup the number of lookups to forget */ virtual folly::Future forget( - fusell::InodeNumber ino, + InodeNumber ino, unsigned long nlookup); /** @@ -129,7 +128,7 @@ class Dispatcher { * * @param ino the inode number */ - virtual folly::Future getattr(fusell::InodeNumber ino); + virtual folly::Future getattr(InodeNumber ino); /** * Set file attributes @@ -146,7 +145,7 @@ class Dispatcher { * file information filled in for ftruncate */ virtual folly::Future setattr( - fusell::InodeNumber ino, + InodeNumber ino, const fuse_setattr_in& attr); /** @@ -154,7 +153,7 @@ class Dispatcher { * * @param ino the inode number */ - virtual folly::Future readlink(fusell::InodeNumber ino); + virtual folly::Future readlink(InodeNumber ino); /** * Create file node @@ -167,11 +166,8 @@ class Dispatcher { * @param mode file type and mode with which to create the new file * @param rdev the device number (only valid if created file is a device) */ - virtual folly::Future mknod( - fusell::InodeNumber parent, - PathComponentPiece name, - mode_t mode, - dev_t rdev); + virtual folly::Future + mknod(InodeNumber parent, PathComponentPiece name, mode_t mode, dev_t rdev); /** * Create a directory @@ -181,7 +177,7 @@ class Dispatcher { * @param mode with which to create the new file */ virtual folly::Future - mkdir(fusell::InodeNumber parent, PathComponentPiece name, mode_t mode); + mkdir(InodeNumber parent, PathComponentPiece name, mode_t mode); /** * Remove a file @@ -190,7 +186,7 @@ class Dispatcher { * @param name to remove */ virtual folly::Future unlink( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name); /** @@ -200,7 +196,7 @@ class Dispatcher { * @param name to remove */ virtual folly::Future rmdir( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name); /** @@ -210,10 +206,8 @@ class Dispatcher { * @param name to create * @param link the contents of the symbolic link */ - virtual folly::Future symlink( - fusell::InodeNumber parent, - PathComponentPiece name, - folly::StringPiece link); + virtual folly::Future + symlink(InodeNumber parent, PathComponentPiece name, folly::StringPiece link); /** * Rename a file @@ -224,9 +218,9 @@ class Dispatcher { * @param newname new name */ virtual folly::Future rename( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name, - fusell::InodeNumber newparent, + InodeNumber newparent, PathComponentPiece newname); /** @@ -236,10 +230,8 @@ class Dispatcher { * @param newparent inode number of the new parent directory * @param newname new name to create */ - virtual folly::Future link( - fusell::InodeNumber ino, - fusell::InodeNumber newparent, - PathComponentPiece newname); + virtual folly::Future + link(InodeNumber ino, InodeNumber newparent, PathComponentPiece newname); /** * Open a file @@ -248,7 +240,7 @@ class Dispatcher { * O_TRUNC) are available in the flags parameter. */ virtual folly::Future> open( - fusell::InodeNumber ino, + InodeNumber ino, int flags); /** @@ -257,7 +249,7 @@ class Dispatcher { * open(2) flags are available in the flags parameter. */ virtual folly::Future> opendir( - fusell::InodeNumber ino, + InodeNumber ino, int flags); /** @@ -265,13 +257,13 @@ class Dispatcher { * * @param ino the inode number, zero means "undefined" */ - virtual folly::Future statfs(fusell::InodeNumber ino); + virtual folly::Future statfs(InodeNumber ino); /** * Set an extended attribute */ virtual folly::Future setxattr( - fusell::InodeNumber ino, + InodeNumber ino, folly::StringPiece name, folly::StringPiece value, int flags); @@ -279,15 +271,14 @@ class Dispatcher { * Get an extended attribute */ virtual folly::Future getxattr( - fusell::InodeNumber ino, + InodeNumber ino, folly::StringPiece name); static const int kENOATTR; /** * List extended attribute names */ - virtual folly::Future> listxattr( - fusell::InodeNumber ino); + virtual folly::Future> listxattr(InodeNumber ino); /** * Remove an extended attribute @@ -296,7 +287,7 @@ class Dispatcher { * @param name of the extended attribute */ virtual folly::Future removexattr( - fusell::InodeNumber ino, + InodeNumber ino, folly::StringPiece name); /** @@ -313,7 +304,7 @@ class Dispatcher { * @param ino the inode number * @param mask requested access mode */ - virtual folly::Future access(fusell::InodeNumber ino, int mask); + virtual folly::Future access(InodeNumber ino, int mask); struct Create { fuse_entry_out entry; @@ -339,11 +330,8 @@ class Dispatcher { * @param name to create * @param mode file type and mode with which to create the new file */ - virtual folly::Future create( - fusell::InodeNumber parent, - PathComponentPiece name, - mode_t mode, - int flags); + virtual folly::Future + create(InodeNumber parent, PathComponentPiece name, mode_t mode, int flags); /** * Map block index within file to block index within device @@ -358,9 +346,8 @@ class Dispatcher { * @param idx block index within file */ virtual folly::Future - bmap(fusell::InodeNumber ino, size_t blocksize, uint64_t idx); + bmap(InodeNumber ino, size_t blocksize, uint64_t idx); }; -} // namespace fusell } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/EdenStats.cpp b/eden/fs/fuse/EdenStats.cpp index 54964e9da0..09bd6ca081 100644 --- a/eden/fs/fuse/EdenStats.cpp +++ b/eden/fs/fuse/EdenStats.cpp @@ -7,7 +7,7 @@ * of patent rights can be found in the PATENTS file in the same directory. * */ -#include "EdenStats.h" +#include "eden/fs/fuse/EdenStats.h" #include #include @@ -29,7 +29,6 @@ constexpr auto kDurations = folly::make_array( namespace facebook { namespace eden { -namespace fusell { EdenStats::EdenStats() {} @@ -70,6 +69,6 @@ void EdenStats::recordLatency( (this->*item)->addValue(now, elapsed.count()); #endif } -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/EdenStats.h b/eden/fs/fuse/EdenStats.h index c14facaeb2..fc66c4f3e7 100644 --- a/eden/fs/fuse/EdenStats.h +++ b/eden/fs/fuse/EdenStats.h @@ -32,7 +32,6 @@ class ThreadLocal; namespace facebook { namespace eden { -namespace fusell { /** * A tag class for using with folly::ThreadLocal when storing EdenStats. @@ -128,6 +127,6 @@ class EdenStats folly::TimeseriesHistogram createHistogram(const std::string& name); #endif }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/FileHandle.cpp b/eden/fs/fuse/FileHandle.cpp index b4d38e1193..720347a1a0 100644 --- a/eden/fs/fuse/FileHandle.cpp +++ b/eden/fs/fuse/FileHandle.cpp @@ -7,13 +7,12 @@ * of patent rights can be found in the PATENTS file in the same directory. * */ -#include "FileHandle.h" +#include "eden/fs/fuse/FileHandle.h" using namespace folly; namespace facebook { namespace eden { -namespace fusell { bool FileHandle::usesDirectIO() const { return false; @@ -25,6 +24,5 @@ bool FileHandle::isSeekable() const { return true; } -} // namespace fusell } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/FileHandle.h b/eden/fs/fuse/FileHandle.h index 987590429d..4245b0127f 100644 --- a/eden/fs/fuse/FileHandle.h +++ b/eden/fs/fuse/FileHandle.h @@ -8,11 +8,10 @@ * */ #pragma once -#include "FileHandleBase.h" +#include "eden/fs/fuse/FileHandleBase.h" namespace facebook { namespace eden { -namespace fusell { class FileHandle : public FileHandleBase { public: @@ -90,6 +89,6 @@ class FileHandle : public FileHandleBase { */ virtual folly::Future fsync(bool datasync) = 0; }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/FileHandleBase.cpp b/eden/fs/fuse/FileHandleBase.cpp index b662468494..a97ce450d4 100644 --- a/eden/fs/fuse/FileHandleBase.cpp +++ b/eden/fs/fuse/FileHandleBase.cpp @@ -7,13 +7,12 @@ * of patent rights can be found in the PATENTS file in the same directory. * */ -#include "FileHandleBase.h" +#include "eden/fs/fuse/FileHandleBase.h" using namespace folly; namespace facebook { namespace eden { -namespace fusell { FileHandleBase::~FileHandleBase() {} @@ -29,6 +28,6 @@ folly::Future FileHandleBase::poll( std::unique_ptr /*ph*/) { FUSELL_NOT_IMPL(); } -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/FileHandleBase.h b/eden/fs/fuse/FileHandleBase.h index 3a09085636..5a70505650 100644 --- a/eden/fs/fuse/FileHandleBase.h +++ b/eden/fs/fuse/FileHandleBase.h @@ -9,13 +9,12 @@ */ #pragma once #include -#include "BufVec.h" -#include "Dispatcher.h" -#include "PollHandle.h" +#include "eden/fs/fuse/BufVec.h" +#include "eden/fs/fuse/Dispatcher.h" +#include "eden/fs/fuse/PollHandle.h" namespace facebook { namespace eden { -namespace fusell { class Dispatcher; @@ -27,7 +26,7 @@ class FileHandleBase { * Return the inode number. * This is used in lieu of getattr() by the code that serializes * the FileHandleMap. */ - virtual fusell::InodeNumber getInodeNumber() = 0; + virtual InodeNumber getInodeNumber() = 0; /** * Get file attributes @@ -87,6 +86,6 @@ class FileHandleBase { */ virtual folly::Future poll(std::unique_ptr ph); }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/FileHandleMap.cpp b/eden/fs/fuse/FileHandleMap.cpp index 414d8e0871..54a4fbe400 100644 --- a/eden/fs/fuse/FileHandleMap.cpp +++ b/eden/fs/fuse/FileHandleMap.cpp @@ -23,7 +23,6 @@ using apache::thrift::CompactSerializer; namespace facebook { namespace eden { -namespace fusell { std::shared_ptr FileHandleMap::getGenericFileHandle( uint64_t fh) { @@ -144,6 +143,5 @@ SerializedFileHandleMap FileHandleMap::serializeMap() { return result; } -} // namespace fusell } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/FileHandleMap.h b/eden/fs/fuse/FileHandleMap.h index ddc4bf3cb1..e629fc33c7 100644 --- a/eden/fs/fuse/FileHandleMap.h +++ b/eden/fs/fuse/FileHandleMap.h @@ -14,13 +14,11 @@ namespace facebook { namespace eden { -class SerializedFileHandleMap; -namespace fusell { - -class FileHandle; class DirHandle; +class FileHandle; class FileHandleBase; +class SerializedFileHandleMap; /** Keeps track of file handle numbers and their associate FileHandleBase * @@ -83,6 +81,6 @@ class FileHandleMap { std::unordered_map>> handles_; }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/FuseChannel.cpp b/eden/fs/fuse/FuseChannel.cpp index 30fc45581f..47337ed78a 100644 --- a/eden/fs/fuse/FuseChannel.cpp +++ b/eden/fs/fuse/FuseChannel.cpp @@ -15,6 +15,7 @@ #include #include #include "eden/fs/fuse/DirHandle.h" +#include "eden/fs/fuse/DirList.h" #include "eden/fs/fuse/Dispatcher.h" #include "eden/fs/fuse/FileHandle.h" #include "eden/fs/fuse/RequestData.h" @@ -24,7 +25,6 @@ using std::string; namespace facebook { namespace eden { -namespace fusell { namespace { @@ -431,10 +431,7 @@ void FuseChannel::destroy() { } } -void FuseChannel::invalidateInode( - fusell::InodeNumber ino, - off_t off, - off_t len) { +void FuseChannel::invalidateInode(InodeNumber ino, off_t off, off_t len) { fuse_notify_inval_inode_out notify; notify.ino = ino.get(); notify.off = off; @@ -469,9 +466,7 @@ void FuseChannel::invalidateInode( } } -void FuseChannel::invalidateEntry( - fusell::InodeNumber parent, - PathComponentPiece name) { +void FuseChannel::invalidateEntry(InodeNumber parent, PathComponentPiece name) { auto namePiece = name.stringPiece(); fuse_notify_inval_entry_out notify = {}; @@ -1028,7 +1023,7 @@ folly::Future FuseChannel::fuseLookup( const fuse_in_header* header, const uint8_t* arg) { PathComponentPiece name{reinterpret_cast(arg)}; - const auto parent = fusell::InodeNumber{header->nodeid}; + const auto parent = InodeNumber{header->nodeid}; XLOG(DBG7) << "FUSE_LOOKUP"; @@ -1042,8 +1037,7 @@ folly::Future FuseChannel::fuseForget( const uint8_t* arg) { auto forget = reinterpret_cast(arg); XLOG(DBG7) << "FUSE_FORGET"; - return dispatcher_ - ->forget(fusell::InodeNumber{header->nodeid}, forget->nlookup) + return dispatcher_->forget(InodeNumber{header->nodeid}, forget->nlookup) .then([]() { RequestData::get().replyNone(); }); } @@ -1065,7 +1059,7 @@ folly::Future FuseChannel::fuseGetAttr( // otherwise, fall through to regular inode based lookup } - return dispatcher_->getattr(fusell::InodeNumber{header->nodeid}) + return dispatcher_->getattr(InodeNumber{header->nodeid}) .then([](Dispatcher::Attr attr) { RequestData::get().sendReply(attr.asFuseAttr()); }); @@ -1083,7 +1077,7 @@ folly::Future FuseChannel::fuseSetAttr( RequestData::get().sendReply(attr.asFuseAttr()); }); } else { - return dispatcher_->setattr(fusell::InodeNumber{header->nodeid}, *setattr) + return dispatcher_->setattr(InodeNumber{header->nodeid}, *setattr) .then([](Dispatcher::Attr attr) { RequestData::get().sendReply(attr.asFuseAttr()); }); @@ -1094,7 +1088,7 @@ folly::Future FuseChannel::fuseReadLink( const fuse_in_header* header, const uint8_t* arg) { XLOG(DBG7) << "FUSE_READLINK"; - return dispatcher_->readlink(fusell::InodeNumber{header->nodeid}) + return dispatcher_->readlink(InodeNumber{header->nodeid}) .then([](std::string&& str) { RequestData::get().sendReply(folly::StringPiece(str)); }); @@ -1108,7 +1102,7 @@ folly::Future FuseChannel::fuseSymlink( const PathComponentPiece name{nameStr}; const StringPiece link{nameStr + name.stringPiece().size() + 1}; - return dispatcher_->symlink(fusell::InodeNumber{header->nodeid}, name, link) + return dispatcher_->symlink(InodeNumber{header->nodeid}, name, link) .then([](fuse_entry_out param) { RequestData::get().sendReply(param); }); } @@ -1136,7 +1130,7 @@ folly::Future FuseChannel::fuseMknod( XLOG(DBG7) << "FUSE_MKNOD " << name; return dispatcher_ - ->mknod(fusell::InodeNumber{header->nodeid}, name, nod->mode, nod->rdev) + ->mknod(InodeNumber{header->nodeid}, name, nod->mode, nod->rdev) .then([](fuse_entry_out entry) { RequestData::get().sendReply(entry); }); } @@ -1156,8 +1150,7 @@ folly::Future FuseChannel::fuseMkdir( XLOG(DBG7) << "mode = " << dir->mode << "; umask = " << dir->umask; return dispatcher_ - ->mkdir( - fusell::InodeNumber{header->nodeid}, name, dir->mode & ~dir->umask) + ->mkdir(InodeNumber{header->nodeid}, name, dir->mode & ~dir->umask) .then([](fuse_entry_out entry) { RequestData::get().sendReply(entry); }); } @@ -1169,8 +1162,9 @@ folly::Future FuseChannel::fuseUnlink( XLOG(DBG7) << "FUSE_UNLINK " << name; - return dispatcher_->unlink(fusell::InodeNumber{header->nodeid}, name) - .then([]() { RequestData::get().replyError(0); }); + return dispatcher_->unlink(InodeNumber{header->nodeid}, name).then([]() { + RequestData::get().replyError(0); + }); } folly::Future FuseChannel::fuseRmdir( @@ -1181,8 +1175,9 @@ folly::Future FuseChannel::fuseRmdir( XLOG(DBG7) << "FUSE_RMDIR " << name; - return dispatcher_->rmdir(fusell::InodeNumber{header->nodeid}, name) - .then([]() { RequestData::get().replyError(0); }); + return dispatcher_->rmdir(InodeNumber{header->nodeid}, name).then([]() { + RequestData::get().replyError(0); + }); } folly::Future FuseChannel::fuseRename( @@ -1197,9 +1192,9 @@ folly::Future FuseChannel::fuseRename( XLOG(DBG7) << "FUSE_RENAME " << oldName << " -> " << newName; return dispatcher_ ->rename( - fusell::InodeNumber{header->nodeid}, + InodeNumber{header->nodeid}, oldName, - fusell::InodeNumber{rename->newdir}, + InodeNumber{rename->newdir}, newName) .then([]() { RequestData::get().replyError(0); }); } @@ -1214,10 +1209,7 @@ folly::Future FuseChannel::fuseLink( XLOG(DBG7) << "FUSE_LINK " << newName; return dispatcher_ - ->link( - fusell::InodeNumber{link->oldnodeid}, - fusell::InodeNumber{header->nodeid}, - newName) + ->link(InodeNumber{link->oldnodeid}, InodeNumber{header->nodeid}, newName) .then([](fuse_entry_out param) { RequestData::get().sendReply(param); }); } @@ -1226,7 +1218,7 @@ folly::Future FuseChannel::fuseOpen( const uint8_t* arg) { const auto open = reinterpret_cast(arg); XLOG(DBG7) << "FUSE_OPEN"; - return dispatcher_->open(fusell::InodeNumber{header->nodeid}, open->flags) + return dispatcher_->open(InodeNumber{header->nodeid}, open->flags) .then([this](std::shared_ptr fh) { if (!fh) { throw std::runtime_error("Dispatcher::open failed to set fh"); @@ -1256,7 +1248,7 @@ folly::Future FuseChannel::fuseStatFs( const fuse_in_header* header, const uint8_t* arg) { XLOG(DBG7) << "FUSE_STATFS"; - return dispatcher_->statfs(fusell::InodeNumber{header->nodeid}) + return dispatcher_->statfs(InodeNumber{header->nodeid}) .then([](struct fuse_kstatfs&& info) { fuse_statfs_out out = {}; out.st = info; @@ -1300,8 +1292,7 @@ folly::Future FuseChannel::fuseSetXAttr( XLOG(DBG7) << "FUSE_SETXATTR"; return dispatcher_ - ->setxattr( - fusell::InodeNumber{header->nodeid}, attrName, value, setxattr->flags) + ->setxattr(InodeNumber{header->nodeid}, attrName, value, setxattr->flags) .then([]() { RequestData::get().replyError(0); }); } @@ -1312,7 +1303,7 @@ folly::Future FuseChannel::fuseGetXAttr( const auto nameStr = reinterpret_cast(getxattr + 1); const StringPiece attrName{nameStr}; XLOG(DBG7) << "FUSE_GETXATTR"; - return dispatcher_->getxattr(fusell::InodeNumber{header->nodeid}, attrName) + return dispatcher_->getxattr(InodeNumber{header->nodeid}, attrName) .then([size = getxattr->size](std::string attr) { auto& request = RequestData::get(); if (size == 0) { @@ -1332,7 +1323,7 @@ folly::Future FuseChannel::fuseListXAttr( const uint8_t* arg) { const auto listattr = reinterpret_cast(arg); XLOG(DBG7) << "FUSE_LISTXATTR"; - return dispatcher_->listxattr(fusell::InodeNumber{header->nodeid}) + return dispatcher_->listxattr(InodeNumber{header->nodeid}) .then([size = listattr->size](std::vector attrs) { auto& request = RequestData::get(); @@ -1368,7 +1359,7 @@ folly::Future FuseChannel::fuseRemoveXAttr( const auto nameStr = reinterpret_cast(arg); const StringPiece attrName{nameStr}; XLOG(DBG7) << "FUSE_REMOVEXATTR"; - return dispatcher_->removexattr(fusell::InodeNumber{header->nodeid}, attrName) + return dispatcher_->removexattr(InodeNumber{header->nodeid}, attrName) .then([]() { RequestData::get().replyError(0); }); } @@ -1389,7 +1380,7 @@ folly::Future FuseChannel::fuseOpenDir( const uint8_t* arg) { const auto open = reinterpret_cast(arg); XLOG(DBG7) << "FUSE_OPENDIR"; - return dispatcher_->opendir(fusell::InodeNumber{header->nodeid}, open->flags) + return dispatcher_->opendir(InodeNumber{header->nodeid}, open->flags) .then([this](std::shared_ptr dh) { if (!dh) { throw std::runtime_error("Dispatcher::opendir failed to set dh"); @@ -1449,7 +1440,7 @@ folly::Future FuseChannel::fuseAccess( const uint8_t* arg) { const auto access = reinterpret_cast(arg); XLOG(DBG7) << "FUSE_ACCESS"; - return dispatcher_->access(fusell::InodeNumber{header->nodeid}, access->mask) + return dispatcher_->access(InodeNumber{header->nodeid}, access->mask) .then([]() { RequestData::get().replyError(0); }); } @@ -1460,11 +1451,7 @@ folly::Future FuseChannel::fuseCreate( const PathComponentPiece name{reinterpret_cast(create + 1)}; XLOG(DBG7) << "FUSE_CREATE " << name; return dispatcher_ - ->create( - fusell::InodeNumber{header->nodeid}, - name, - create->mode, - create->flags) + ->create(InodeNumber{header->nodeid}, name, create->mode, create->flags) .then([this](Dispatcher::Create info) { fuse_open_out out = {}; if (info.fh->usesDirectIO()) { @@ -1504,7 +1491,7 @@ folly::Future FuseChannel::fuseBmap( const auto bmap = reinterpret_cast(arg); XLOG(DBG7) << "FUSE_BMAP"; return dispatcher_ - ->bmap(fusell::InodeNumber{header->nodeid}, bmap->blocksize, bmap->block) + ->bmap(InodeNumber{header->nodeid}, bmap->blocksize, bmap->block) .then([](uint64_t resultIdx) { fuse_bmap_out out; out.block = resultIdx; @@ -1521,12 +1508,11 @@ folly::Future FuseChannel::fuseBatchForget( XLOG(DBG7) << "FUSE_BATCH_FORGET"; while (item != end) { - dispatcher_->forget(fusell::InodeNumber{item->nodeid}, item->nlookup); + dispatcher_->forget(InodeNumber{item->nodeid}, item->nlookup); ++item; } return Unit{}; } -} // namespace fusell } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/FuseChannel.h b/eden/fs/fuse/FuseChannel.h index bb204e3a1c..dbb90e90d1 100644 --- a/eden/fs/fuse/FuseChannel.h +++ b/eden/fs/fuse/FuseChannel.h @@ -29,7 +29,6 @@ class RequestContext; namespace facebook { namespace eden { -namespace fusell { class Dispatcher; @@ -173,7 +172,7 @@ class FuseChannel { * or negative to invalidate attributes only * @param len the amount of cache to invalidate or 0 for all */ - void invalidateInode(fusell::InodeNumber ino, off_t off, off_t len); + void invalidateInode(InodeNumber ino, off_t off, off_t len); /** * Notify to invalidate parent attributes and the dentry matching @@ -182,7 +181,7 @@ class FuseChannel { * @param parent inode number * @param name file name */ - void invalidateEntry(fusell::InodeNumber parent, PathComponentPiece name); + void invalidateEntry(InodeNumber parent, PathComponentPiece name); /** * Sends a reply to a kernel request that consists only of the error @@ -499,6 +498,6 @@ class FuseChannelDeleter { channel->destroy(); } }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/FuseTypes.cpp b/eden/fs/fuse/FuseTypes.cpp index 97877115b8..3ffe81c083 100644 --- a/eden/fs/fuse/FuseTypes.cpp +++ b/eden/fs/fuse/FuseTypes.cpp @@ -14,7 +14,6 @@ namespace facebook { namespace eden { -namespace fusell { std::ostream& operator<<(std::ostream& os, InodeNumber ino) { return os << ino.getRawValue(); @@ -28,6 +27,5 @@ void toAppend(InodeNumber ino, folly::fbstring* result) { folly::toAppend(ino.getRawValue(), result); } -} // namespace fusell } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/FuseTypes.h b/eden/fs/fuse/FuseTypes.h index 4418983fc5..8456934aab 100644 --- a/eden/fs/fuse/FuseTypes.h +++ b/eden/fs/fuse/FuseTypes.h @@ -20,7 +20,6 @@ #endif namespace facebook { namespace eden { -namespace fusell { /** * Represents ino_t behind a slightly safer API. In general, it is a bug if @@ -127,22 +126,20 @@ struct FuseChannelData { fuse_init_out connInfo; }; -} // namespace fusell - -constexpr fusell::InodeNumber operator""_ino(unsigned long long ino) { - return fusell::InodeNumber{ino}; +constexpr InodeNumber operator""_ino(unsigned long long ino) { + return InodeNumber{ino}; } /// The inode number of the mount's root directory. -constexpr fusell::InodeNumber kRootNodeId = 1_ino; +constexpr InodeNumber kRootNodeId = 1_ino; } // namespace eden } // namespace facebook namespace std { template <> -struct hash { - size_t operator()(facebook::eden::fusell::InodeNumber n) const { +struct hash { + size_t operator()(facebook::eden::InodeNumber n) const { // TODO: It may be worth using a different hash function. The default // std::hash for integers is the identity function. But since we allocate // inode numbers monotonically, this should be okay. @@ -153,9 +150,9 @@ struct hash { namespace folly { template <> -class FormatValue { +class FormatValue { public: - explicit FormatValue(facebook::eden::fusell::InodeNumber ino) : ino_(ino) {} + explicit FormatValue(facebook::eden::InodeNumber ino) : ino_(ino) {} template void format(FormatArg& arg, FormatCallback& cb) const { @@ -163,6 +160,6 @@ class FormatValue { } private: - const facebook::eden::fusell::InodeNumber ino_; + const facebook::eden::InodeNumber ino_; }; } // namespace folly diff --git a/eden/fs/fuse/PollHandle.cpp b/eden/fs/fuse/PollHandle.cpp index 220c881a35..5b0b14914d 100644 --- a/eden/fs/fuse/PollHandle.cpp +++ b/eden/fs/fuse/PollHandle.cpp @@ -7,11 +7,10 @@ * of patent rights can be found in the PATENTS file in the same directory. * */ -#include "PollHandle.h" +#include "eden/fs/fuse/PollHandle.h" namespace facebook { namespace eden { -namespace fusell { void PollHandle::Deleter::operator()(fuse_pollhandle* /*h*/) { #if FUSE_MAJOR_VERSION >= 8 @@ -26,6 +25,6 @@ void PollHandle::notify() { fuse_lowlevel_notify_poll(h_.get()); #endif } -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/PollHandle.h b/eden/fs/fuse/PollHandle.h index a6419516f4..5d26bbd8b1 100644 --- a/eden/fs/fuse/PollHandle.h +++ b/eden/fs/fuse/PollHandle.h @@ -13,7 +13,6 @@ namespace facebook { namespace eden { -namespace fusell { // Some compatibility cruft for working with OSX Fuse #if FUSE_MINOR_VERSION < 8 @@ -37,6 +36,6 @@ class PollHandle { // Requests that the kernel poll the associated file void notify(); }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/RequestData.cpp b/eden/fs/fuse/RequestData.cpp index 6887240dac..f6c680c50f 100644 --- a/eden/fs/fuse/RequestData.cpp +++ b/eden/fs/fuse/RequestData.cpp @@ -18,9 +18,8 @@ using namespace std::chrono; namespace facebook { namespace eden { -namespace fusell { -const std::string RequestData::kKey("fusell"); +const std::string RequestData::kKey("fuse"); RequestData::RequestData( FuseChannel* channel, @@ -130,6 +129,6 @@ void RequestData::genericErrorHandler(const std::exception& err) { XLOG(DBG5) << folly::exceptionStr(err); RequestData::get().replyError(EIO); } -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/RequestData.h b/eden/fs/fuse/RequestData.h index 85ebf2bc94..90fde782de 100644 --- a/eden/fs/fuse/RequestData.h +++ b/eden/fs/fuse/RequestData.h @@ -18,7 +18,6 @@ namespace facebook { namespace eden { -namespace fusell { class Dispatcher; @@ -129,6 +128,6 @@ class RequestData : public folly::RequestData { folly::Future interrupter_; std::atomic interrupted_{false}; }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/fuse_tester/main.cpp b/eden/fs/fuse/fuse_tester/main.cpp index 6d5d1c3b6c..0c0e46be62 100644 --- a/eden/fs/fuse/fuse_tester/main.cpp +++ b/eden/fs/fuse/fuse_tester/main.cpp @@ -23,7 +23,6 @@ #include "eden/fs/utils/PathFuncs.h" using namespace facebook::eden; -using namespace facebook::eden::fusell; using folly::exceptionStr; using folly::makeFuture; using std::string; @@ -43,7 +42,7 @@ class TestDispatcher : public Dispatcher { TestDispatcher(ThreadLocalEdenStats* stats, const UserInfo& identity) : Dispatcher(stats), identity_(identity) {} - folly::Future getattr(fusell::InodeNumber ino) override { + folly::Future getattr(InodeNumber ino) override { if (ino == kRootNodeId) { struct stat st = {}; st.st_ino = ino.get(); diff --git a/eden/fs/fuse/privhelper/PrivHelper.cpp b/eden/fs/fuse/privhelper/PrivHelper.cpp index 3b952c7c3a..2df324d8bf 100644 --- a/eden/fs/fuse/privhelper/PrivHelper.cpp +++ b/eden/fs/fuse/privhelper/PrivHelper.cpp @@ -30,9 +30,6 @@ using std::string; using std::unique_ptr; using std::vector; -using facebook::eden::fusell::PrivHelperConn; -using facebook::eden::fusell::PrivHelperServer; - namespace facebook { namespace eden { diff --git a/eden/fs/fuse/privhelper/PrivHelper.h b/eden/fs/fuse/privhelper/PrivHelper.h index 5c9bb1d029..0b3a0256aa 100644 --- a/eden/fs/fuse/privhelper/PrivHelper.h +++ b/eden/fs/fuse/privhelper/PrivHelper.h @@ -96,9 +96,7 @@ class PrivHelper { virtual int stop() = 0; }; -namespace fusell { class PrivHelperServer; -} /** * Fork a separate privileged helper process, for performing mounts. @@ -115,7 +113,7 @@ std::unique_ptr startPrivHelper(const UserInfo& userInfo); * This is really only intended for use in unit tests. */ std::unique_ptr startPrivHelper( - fusell::PrivHelperServer* server, + PrivHelperServer* server, const UserInfo& userInfo); } // namespace eden diff --git a/eden/fs/fuse/privhelper/PrivHelperConn.cpp b/eden/fs/fuse/privhelper/PrivHelperConn.cpp index 561669d83d..f9a7063231 100644 --- a/eden/fs/fuse/privhelper/PrivHelperConn.cpp +++ b/eden/fs/fuse/privhelper/PrivHelperConn.cpp @@ -41,7 +41,6 @@ DEFINE_int32( namespace facebook { namespace eden { -namespace fusell { namespace { @@ -475,6 +474,6 @@ void PrivHelperConn::rethrowErrorResponse(const Message* msg) { PrivHelperError::PrivHelperError(StringPiece remoteExType, StringPiece msg) : message_(folly::to(remoteExType, ": ", msg)) {} -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/privhelper/PrivHelperConn.h b/eden/fs/fuse/privhelper/PrivHelperConn.h index 50c9b0e57d..be9c59cd6f 100644 --- a/eden/fs/fuse/privhelper/PrivHelperConn.h +++ b/eden/fs/fuse/privhelper/PrivHelperConn.h @@ -20,7 +20,6 @@ class File; namespace facebook { namespace eden { -namespace fusell { /* * A helper class for sending and receiving messages on the privhelper socket. @@ -200,6 +199,6 @@ class PrivHelperError : public std::exception { private: std::string message_; }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/privhelper/PrivHelperServer.cpp b/eden/fs/fuse/privhelper/PrivHelperServer.cpp index 717ed471e7..861b492acf 100644 --- a/eden/fs/fuse/privhelper/PrivHelperServer.cpp +++ b/eden/fs/fuse/privhelper/PrivHelperServer.cpp @@ -39,7 +39,6 @@ using std::string; namespace facebook { namespace eden { -namespace fusell { PrivHelperServer::PrivHelperServer() {} @@ -432,6 +431,6 @@ void PrivHelperServer::run() { // Unmount all active mount points cleanupMountPoints(); } -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/privhelper/PrivHelperServer.h b/eden/fs/fuse/privhelper/PrivHelperServer.h index 2720b0e618..b8084de150 100644 --- a/eden/fs/fuse/privhelper/PrivHelperServer.h +++ b/eden/fs/fuse/privhelper/PrivHelperServer.h @@ -14,7 +14,7 @@ #include #include #include -#include "PrivHelperConn.h" +#include "eden/fs/fuse/privhelper/PrivHelperConn.h" namespace folly { class File; @@ -22,7 +22,6 @@ class File; namespace facebook { namespace eden { -namespace fusell { /* * PrivHelperServer runs the main loop for the privhelper server process. @@ -70,6 +69,6 @@ class PrivHelperServer { std::set mountPoints_; std::unordered_multimap bindMountPoints_; }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/privhelper/test/PrivHelperTest.cpp b/eden/fs/fuse/privhelper/test/PrivHelperTest.cpp index 68b2072dae..8e4cabc9e1 100644 --- a/eden/fs/fuse/privhelper/test/PrivHelperTest.cpp +++ b/eden/fs/fuse/privhelper/test/PrivHelperTest.cpp @@ -24,7 +24,7 @@ #include using namespace folly::string_piece_literals; -using namespace facebook::eden::fusell; +using namespace facebook::eden; using facebook::eden::UserInfo; using folly::ByteRange; using folly::checkUnixError; diff --git a/eden/fs/fuse/privhelper/test/PrivHelperTestServer.cpp b/eden/fs/fuse/privhelper/test/PrivHelperTestServer.cpp index ac62810f6e..cce3676411 100644 --- a/eden/fs/fuse/privhelper/test/PrivHelperTestServer.cpp +++ b/eden/fs/fuse/privhelper/test/PrivHelperTestServer.cpp @@ -20,7 +20,6 @@ using std::string; namespace facebook { namespace eden { -namespace fusell { PrivHelperTestServer::PrivHelperTestServer() {} @@ -100,6 +99,6 @@ bool PrivHelperTestServer::checkIfMarkerFileHasContents( throw; } } -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/privhelper/test/PrivHelperTestServer.h b/eden/fs/fuse/privhelper/test/PrivHelperTestServer.h index 3097dd6792..eb2aca2778 100644 --- a/eden/fs/fuse/privhelper/test/PrivHelperTestServer.h +++ b/eden/fs/fuse/privhelper/test/PrivHelperTestServer.h @@ -15,7 +15,6 @@ namespace facebook { namespace eden { -namespace fusell { /* * A subclass of PrivHelperServer that doesn't actually perform @@ -53,6 +52,6 @@ class PrivHelperTestServer : public PrivHelperServer { const std::string pathToMarkerFile, const std::string contents) const; }; -} // namespace fusell + } // namespace eden } // namespace facebook diff --git a/eden/fs/fuse/test/BufVecTest.cpp b/eden/fs/fuse/test/BufVecTest.cpp index cb8398b3fa..c7010f4745 100644 --- a/eden/fs/fuse/test/BufVecTest.cpp +++ b/eden/fs/fuse/test/BufVecTest.cpp @@ -14,7 +14,7 @@ TEST(BufVecTest, BufVec) { auto root = folly::IOBuf::wrapBuffer("hello", 5); root->appendChain(folly::IOBuf::wrapBuffer("world", 5)); - const auto bufVec = facebook::eden::fusell::BufVec{std::move(root)}; + const auto bufVec = facebook::eden::BufVec{std::move(root)}; EXPECT_EQ(10u, bufVec.size()); EXPECT_EQ(10u, bufVec.copyData().size()); EXPECT_EQ("helloworld", bufVec.copyData()); diff --git a/eden/fs/fuse/test/FileHandleMapTest.cpp b/eden/fs/fuse/test/FileHandleMapTest.cpp index dd57f5ebb8..bb50fd5d6c 100644 --- a/eden/fs/fuse/test/FileHandleMapTest.cpp +++ b/eden/fs/fuse/test/FileHandleMapTest.cpp @@ -15,7 +15,6 @@ #include "eden/fs/fuse/gen-cpp2/handlemap_types.h" using namespace facebook::eden; -using namespace facebook::eden::fusell; using folly::Future; using folly::test::TemporaryFile; @@ -23,9 +22,9 @@ namespace { class FakeDirHandle : public DirHandle { public: - explicit FakeDirHandle(fusell::InodeNumber inode) : inode_(inode) {} + explicit FakeDirHandle(InodeNumber inode) : inode_(inode) {} - fusell::InodeNumber getInodeNumber() override { + InodeNumber getInodeNumber() override { return inode_; } folly::Future getattr() override { @@ -44,14 +43,14 @@ class FakeDirHandle : public DirHandle { } private: - fusell::InodeNumber inode_; + InodeNumber inode_; }; class FakeFileHandle : public FileHandle { public: - explicit FakeFileHandle(fusell::InodeNumber inode) : inode_(inode) {} + explicit FakeFileHandle(InodeNumber inode) : inode_(inode) {} - fusell::InodeNumber getInodeNumber() override { + InodeNumber getInodeNumber() override { return inode_; } folly::Future getattr() override { @@ -79,7 +78,7 @@ class FakeFileHandle : public FileHandle { } private: - fusell::InodeNumber inode_; + InodeNumber inode_; }; } // namespace diff --git a/eden/fs/fuse/test/FuseChannelTest.cpp b/eden/fs/fuse/test/FuseChannelTest.cpp index db814c99cb..d01af797d3 100644 --- a/eden/fs/fuse/test/FuseChannelTest.cpp +++ b/eden/fs/fuse/test/FuseChannelTest.cpp @@ -21,7 +21,6 @@ #include "eden/fs/testharness/TestDispatcher.h" using namespace facebook::eden; -using namespace facebook::eden::fusell; using namespace std::literals::chrono_literals; using folly::ByteRange; using folly::Future; diff --git a/eden/fs/inodes/EdenDispatcher.cpp b/eden/fs/inodes/EdenDispatcher.cpp index 39027b485d..96d5f78aec 100644 --- a/eden/fs/inodes/EdenDispatcher.cpp +++ b/eden/fs/inodes/EdenDispatcher.cpp @@ -49,8 +49,8 @@ namespace { /** Compute a fuse_entry_out */ fuse_entry_out computeEntryParam( - fusell::InodeNumber number, - const fusell::Dispatcher::Attr& attr) { + InodeNumber number, + const Dispatcher::Attr& attr) { fuse_entry_out entry; entry.nodeid = number.get(); entry.generation = 1; @@ -64,15 +64,14 @@ fuse_entry_out computeEntryParam( } } // namespace -folly::Future EdenDispatcher::getattr( - fusell::InodeNumber ino) { +folly::Future EdenDispatcher::getattr(InodeNumber ino) { FB_LOGF(mount_->getStraceLogger(), DBG7, "getattr({})", ino); return inodeMap_->lookupInode(ino).then( [](const InodePtr& inode) { return inode->getattr(); }); } -folly::Future> EdenDispatcher::opendir( - fusell::InodeNumber ino, +folly::Future> EdenDispatcher::opendir( + InodeNumber ino, int flags) { FB_LOGF( mount_->getStraceLogger(), DBG7, "opendir({}, flags={:x})", ino, flags); @@ -81,7 +80,7 @@ folly::Future> EdenDispatcher::opendir( } folly::Future EdenDispatcher::lookup( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece namepiece) { FB_LOGF(mount_->getStraceLogger(), DBG7, "lookup({}, {})", parent, namepiece); return inodeMap_->lookupTreeInode(parent) @@ -89,7 +88,7 @@ folly::Future EdenDispatcher::lookup( return tree->getOrLoadChild(name); }) .then([](const InodePtr& inode) { - return inode->getattr().then([inode](fusell::Dispatcher::Attr attr) { + return inode->getattr().then([inode](Dispatcher::Attr attr) { inode->incFuseRefcount(); // Preserve inode's life for the duration of the prefetch. inode->prefetch().ensure([inode] {}); @@ -113,8 +112,8 @@ folly::Future EdenDispatcher::lookup( }); } -folly::Future EdenDispatcher::setattr( - fusell::InodeNumber ino, +folly::Future EdenDispatcher::setattr( + InodeNumber ino, const fuse_setattr_in& attr) { FB_LOGF(mount_->getStraceLogger(), DBG7, "setattr({})", ino); return inodeMap_->lookupInode(ino).then( @@ -122,23 +121,23 @@ folly::Future EdenDispatcher::setattr( } folly::Future EdenDispatcher::forget( - fusell::InodeNumber ino, + InodeNumber ino, unsigned long nlookup) { FB_LOGF(mount_->getStraceLogger(), DBG7, "forget({}, {})", ino, nlookup); inodeMap_->decFuseRefcount(ino, nlookup); return Unit{}; } -folly::Future> EdenDispatcher::open( - fusell::InodeNumber ino, +folly::Future> EdenDispatcher::open( + InodeNumber ino, int flags) { FB_LOGF(mount_->getStraceLogger(), DBG7, "open({}, flags={:x})", ino, flags); return inodeMap_->lookupFileInode(ino).then( [flags](const FileInodePtr& inode) { return inode->open(flags); }); } -folly::Future EdenDispatcher::create( - fusell::InodeNumber parent, +folly::Future EdenDispatcher::create( + InodeNumber parent, PathComponentPiece name, mode_t mode, int flags) { @@ -156,7 +155,7 @@ folly::Future EdenDispatcher::create( return parentInode->create(childName, mode, flags); }) .then([=](TreeInode::CreateResult created) { - fusell::Dispatcher::Create result; + Dispatcher::Create result; created.inode->incFuseRefcount(); result.entry = computeEntryParam(created.inode->getNodeId(), created.attr); @@ -165,14 +164,14 @@ folly::Future EdenDispatcher::create( }); } -folly::Future EdenDispatcher::readlink(fusell::InodeNumber ino) { +folly::Future EdenDispatcher::readlink(InodeNumber ino) { FB_LOGF(mount_->getStraceLogger(), DBG7, "readlink({})", ino); return inodeMap_->lookupFileInode(ino).then( [](const FileInodePtr& inode) { return inode->readlink(); }); } folly::Future EdenDispatcher::mknod( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name, mode_t mode, dev_t rdev) { @@ -187,7 +186,7 @@ folly::Future EdenDispatcher::mknod( return inodeMap_->lookupTreeInode(parent).then( [childName = PathComponent{name}, mode, rdev](const TreeInodePtr& inode) { auto child = inode->mknod(childName, mode, rdev); - return child->getattr().then([child](fusell::Dispatcher::Attr attr) { + return child->getattr().then([child](Dispatcher::Attr attr) { child->incFuseRefcount(); return computeEntryParam(child->getNodeId(), attr); }); @@ -195,7 +194,7 @@ folly::Future EdenDispatcher::mknod( } folly::Future EdenDispatcher::mkdir( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name, mode_t mode) { FB_LOGF( @@ -208,7 +207,7 @@ folly::Future EdenDispatcher::mkdir( return inodeMap_->lookupTreeInode(parent).then( [childName = PathComponent{name}, mode](const TreeInodePtr& inode) { auto child = inode->mkdir(childName, mode); - return child->getattr().then([child](fusell::Dispatcher::Attr attr) { + return child->getattr().then([child](Dispatcher::Attr attr) { child->incFuseRefcount(); return computeEntryParam(child->getNodeId(), attr); }); @@ -216,7 +215,7 @@ folly::Future EdenDispatcher::mkdir( } folly::Future EdenDispatcher::unlink( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name) { FB_LOGF(mount_->getStraceLogger(), DBG7, "unlink({}, {})", parent, name); return inodeMap_->lookupTreeInode(parent).then( @@ -226,7 +225,7 @@ folly::Future EdenDispatcher::unlink( } folly::Future EdenDispatcher::rmdir( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name) { FB_LOGF(mount_->getStraceLogger(), DBG7, "rmdir({}, {})", parent, name); return inodeMap_->lookupTreeInode(parent).then( @@ -236,7 +235,7 @@ folly::Future EdenDispatcher::rmdir( } folly::Future EdenDispatcher::symlink( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name, StringPiece link) { FB_LOGF( @@ -253,9 +252,9 @@ folly::Future EdenDispatcher::symlink( } folly::Future EdenDispatcher::rename( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece namePiece, - fusell::InodeNumber newParent, + InodeNumber newParent, PathComponentPiece newNamePiece) { FB_LOGF( mount_->getStraceLogger(), @@ -281,8 +280,8 @@ folly::Future EdenDispatcher::rename( } folly::Future EdenDispatcher::link( - fusell::InodeNumber ino, - fusell::InodeNumber newParent, + InodeNumber ino, + InodeNumber newParent, PathComponentPiece newName) { FB_LOGF( mount_->getStraceLogger(), @@ -299,9 +298,7 @@ folly::Future EdenDispatcher::link( EPERM, "hard links are not supported in eden mount points"); } -Future EdenDispatcher::getxattr( - fusell::InodeNumber ino, - StringPiece name) { +Future EdenDispatcher::getxattr(InodeNumber ino, StringPiece name) { FB_LOGF(mount_->getStraceLogger(), DBG7, "getxattr({}, {})", ino, name); return inodeMap_->lookupInode(ino).then( [attrName = name.str()](const InodePtr& inode) { @@ -309,7 +306,7 @@ Future EdenDispatcher::getxattr( }); } -Future> EdenDispatcher::listxattr(fusell::InodeNumber ino) { +Future> EdenDispatcher::listxattr(InodeNumber ino) { FB_LOGF(mount_->getStraceLogger(), DBG7, "listxattr({})", ino); return inodeMap_->lookupInode(ino).then( [](const InodePtr& inode) { return inode->listxattr(); }); diff --git a/eden/fs/inodes/EdenDispatcher.h b/eden/fs/inodes/EdenDispatcher.h index 14ca097668..08c48f0bec 100644 --- a/eden/fs/inodes/EdenDispatcher.h +++ b/eden/fs/inodes/EdenDispatcher.h @@ -23,7 +23,7 @@ class TreeInode; /** * A FUSE request dispatcher for eden mount points. */ -class EdenDispatcher : public fusell::Dispatcher { +class EdenDispatcher : public Dispatcher { public: /* * Create an EdenDispatcher. @@ -31,64 +31,54 @@ class EdenDispatcher : public fusell::Dispatcher { */ explicit EdenDispatcher(EdenMount* mount); - folly::Future getattr(fusell::InodeNumber ino) override; - folly::Future setattr( - fusell::InodeNumber ino, - const fuse_setattr_in& attr) override; - folly::Future> opendir( - fusell::InodeNumber ino, - int flags) override; + folly::Future getattr(InodeNumber ino) override; + folly::Future setattr(InodeNumber ino, const fuse_setattr_in& attr) + override; + folly::Future> opendir(InodeNumber ino, int flags) + override; folly::Future lookup( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name) override; - folly::Future forget( - fusell::InodeNumber ino, - unsigned long nlookup) override; - folly::Future> open( - fusell::InodeNumber ino, - int flags) override; - folly::Future readlink(fusell::InodeNumber ino) override; + folly::Future forget(InodeNumber ino, unsigned long nlookup) + override; + folly::Future> open(InodeNumber ino, int flags) + override; + folly::Future readlink(InodeNumber ino) override; folly::Future mknod( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name, mode_t mode, dev_t rdev) override; - folly::Future mkdir( - fusell::InodeNumber parent, - PathComponentPiece name, - mode_t mode) override; - folly::Future unlink( - fusell::InodeNumber parent, - PathComponentPiece name) override; - folly::Future rmdir( - fusell::InodeNumber parent, - PathComponentPiece name) override; + folly::Future + mkdir(InodeNumber parent, PathComponentPiece name, mode_t mode) override; + folly::Future unlink(InodeNumber parent, PathComponentPiece name) + override; + folly::Future rmdir(InodeNumber parent, PathComponentPiece name) + override; folly::Future symlink( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name, folly::StringPiece link) override; folly::Future rename( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name, - fusell::InodeNumber newparent, + InodeNumber newparent, PathComponentPiece newname) override; folly::Future link( - fusell::InodeNumber ino, - fusell::InodeNumber newparent, + InodeNumber ino, + InodeNumber newparent, PathComponentPiece newname) override; folly::Future create( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name, mode_t mode, int flags) override; - folly::Future getxattr( - fusell::InodeNumber ino, - folly::StringPiece name) override; - folly::Future> listxattr( - fusell::InodeNumber ino) override; + folly::Future getxattr(InodeNumber ino, folly::StringPiece name) + override; + folly::Future> listxattr(InodeNumber ino) override; private: // The EdenMount that owns this EdenDispatcher. diff --git a/eden/fs/inodes/EdenFileHandle.cpp b/eden/fs/inodes/EdenFileHandle.cpp index c2eca58db4..63c39f8acc 100644 --- a/eden/fs/inodes/EdenFileHandle.cpp +++ b/eden/fs/inodes/EdenFileHandle.cpp @@ -22,7 +22,7 @@ EdenFileHandle::~EdenFileHandle() { inode_->fileHandleDidClose(); } -folly::Future EdenFileHandle::getattr() { +folly::Future EdenFileHandle::getattr() { FB_LOGF( inode_->getMount()->getStraceLogger(), DBG7, @@ -31,11 +31,11 @@ folly::Future EdenFileHandle::getattr() { return inode_->getattr(); } -fusell::InodeNumber EdenFileHandle::getInodeNumber() { +InodeNumber EdenFileHandle::getInodeNumber() { return inode_->getNodeId(); } -folly::Future EdenFileHandle::setattr( +folly::Future EdenFileHandle::setattr( const fuse_setattr_in& attr) { FB_LOGF( inode_->getMount()->getStraceLogger(), @@ -53,7 +53,7 @@ bool EdenFileHandle::isSeekable() const { return true; } -folly::Future EdenFileHandle::read(size_t size, off_t off) { +folly::Future EdenFileHandle::read(size_t size, off_t off) { FB_LOGF( inode_->getMount()->getStraceLogger(), DBG7, @@ -64,7 +64,7 @@ folly::Future EdenFileHandle::read(size_t size, off_t off) { return inode_->read(size, off); } -folly::Future EdenFileHandle::write(fusell::BufVec&& buf, off_t off) { +folly::Future EdenFileHandle::write(BufVec&& buf, off_t off) { FB_LOGF( inode_->getMount()->getStraceLogger(), DBG7, diff --git a/eden/fs/inodes/EdenFileHandle.h b/eden/fs/inodes/EdenFileHandle.h index f4b4bfc787..06469e3153 100644 --- a/eden/fs/inodes/EdenFileHandle.h +++ b/eden/fs/inodes/EdenFileHandle.h @@ -18,7 +18,7 @@ class Blob; class FileInode; class LocalStore; -class EdenFileHandle : public fusell::FileHandle { +class EdenFileHandle : public FileHandle { public: /** * The caller is responsible for incrementing any reference counts in the @@ -38,15 +38,14 @@ class EdenFileHandle : public fusell::FileHandle { // Calls fileHandleDidClose on the associated inode. ~EdenFileHandle() override; - fusell::InodeNumber getInodeNumber() override; - folly::Future getattr() override; - folly::Future setattr( - const fuse_setattr_in& attr) override; + InodeNumber getInodeNumber() override; + folly::Future getattr() override; + folly::Future setattr(const fuse_setattr_in& attr) override; bool preserveCache() const override; bool isSeekable() const override; - folly::Future read(size_t size, off_t off) override; + folly::Future read(size_t size, off_t off) override; - folly::Future write(fusell::BufVec&& buf, off_t off) override; + folly::Future write(BufVec&& buf, off_t off) override; folly::Future write(folly::StringPiece data, off_t off) override; folly::Future flush(uint64_t lock_owner) override; folly::Future fsync(bool datasync) override; @@ -60,5 +59,6 @@ class EdenFileHandle : public fusell::FileHandle { FileInodePtr inode_; }; + } // namespace eden } // namespace facebook diff --git a/eden/fs/inodes/EdenMount.cpp b/eden/fs/inodes/EdenMount.cpp index 484d47738d..2ef46d5e2c 100644 --- a/eden/fs/inodes/EdenMount.cpp +++ b/eden/fs/inodes/EdenMount.cpp @@ -44,8 +44,6 @@ #include "eden/fs/utils/Clock.h" #include "eden/fs/utils/UnboundedQueueThreadPool.h" -using facebook::eden::fusell::FuseChannel; -using facebook::eden::fusell::FuseChannelData; using folly::Future; using folly::makeFuture; using folly::setThreadName; @@ -370,7 +368,7 @@ const AbsolutePath& EdenMount::getPath() const { return path_; } -fusell::ThreadLocalEdenStats* EdenMount::getStats() const { +ThreadLocalEdenStats* EdenMount::getStats() const { return &serverState_->getStats(); } @@ -388,7 +386,7 @@ folly::Future> EdenMount::getRootTreeFuture() return objectStore_->getTreeForCommit(commitHash); } -fusell::InodeNumber EdenMount::getDotEdenInodeNumber() const { +InodeNumber EdenMount::getDotEdenInodeNumber() const { return dotEdenInodeNumber_; } diff --git a/eden/fs/inodes/EdenMount.h b/eden/fs/inodes/EdenMount.h index 6511d54eec..4d28768831 100644 --- a/eden/fs/inodes/EdenMount.h +++ b/eden/fs/inodes/EdenMount.h @@ -40,10 +40,6 @@ class Future; namespace facebook { namespace eden { -namespace fusell { -class FuseChannel; -class MountPoint; -} // namespace fusell class BindMount; class CheckoutConflict; @@ -51,9 +47,11 @@ class ClientConfig; class Clock; class DiffContext; class EdenDispatcher; +class FuseChannel; class InodeDiffCallback; class InodeMap; class Journal; +class MountPoint; class ObjectStore; class Overlay; class ServerState; @@ -81,8 +79,7 @@ enum class CounterName { * EdenMount contains all of the data about a specific eden mount point. * * This contains: - * - The fusell::MountPoint object which manages our FUSE interactions with the - * kernel. + * - The MountPoint object which manages our FUSE interactions with the kernel. * - The ObjectStore object used for retreiving/storing object data. * - The Overlay object used for storing local changes (that have not been * committed/snapshotted yet). @@ -154,7 +151,7 @@ class EdenMount { * synchronization here with the mount start operation. This method provides * no internal synchronization of its own.) */ - fusell::FuseChannel* getFuseChannel() const; + FuseChannel* getFuseChannel() const; /** * Return the path to the mount point. @@ -230,7 +227,7 @@ class EdenMount { TreeInodePtr getRootInode() const; /** Get the inode number for the .eden dir */ - fusell::InodeNumber getDotEdenInodeNumber() const; + InodeNumber getDotEdenInodeNumber() const; /** Convenience method for getting the Tree for the root of the mount. */ std::shared_ptr getRootTree() const; @@ -375,7 +372,7 @@ class EdenMount { * Today this is the global stats instance, but in the future it will be * a mount point specific instance. */ - fusell::ThreadLocalEdenStats* getStats() const; + ThreadLocalEdenStats* getStats() const; folly::Logger& getStraceLogger() { return straceLogger_; @@ -418,7 +415,7 @@ class EdenMount { * This spins up worker threads to service the existing FUSE channel and * returns immediately, or throws an exception on error. */ - void takeoverFuse(fusell::FuseChannelData takeoverData); + void takeoverFuse(FuseChannelData takeoverData); /** * Obtains a future that will complete once the fuse channel has wound down. @@ -554,7 +551,7 @@ class EdenMount { * Once the FuseChannel has been initialized, set up callbacks to clean up * correctly when the channel shuts down. */ - void fuseInitSuccessful(fusell::FuseChannel::StopFuture&& fuseCompleteFuture); + void fuseInitSuccessful(FuseChannel::StopFuture&& fuseCompleteFuture); /** * Private destructor. @@ -580,7 +577,7 @@ class EdenMount { std::unique_ptr dispatcher_; std::unique_ptr objectStore_; std::shared_ptr overlay_; - fusell::InodeNumber dotEdenInodeNumber_{}; + InodeNumber dotEdenInodeNumber_{}; /** * A mutex around all name-changing operations in this mount point. @@ -673,7 +670,7 @@ class EdenMount { /** * The associated fuse channel to the kernel. */ - std::unique_ptr channel_; + std::unique_ptr channel_; /** * The clock. This is also available as serverState_->getClock(). diff --git a/eden/fs/inodes/FileInode.cpp b/eden/fs/inodes/FileInode.cpp index e68a23060d..9d5a23b452 100644 --- a/eden/fs/inodes/FileInode.cpp +++ b/eden/fs/inodes/FileInode.cpp @@ -147,7 +147,7 @@ folly::File FileInode::getFile(FileInode::State& state) const { FileInode::State::~State() = default; std::tuple FileInode::create( - fusell::InodeNumber ino, + InodeNumber ino, TreeInodePtr parentInode, PathComponentPiece name, mode_t mode, @@ -169,7 +169,7 @@ std::tuple FileInode::create( // The FileInode is in NOT_LOADED or MATERIALIZED_IN_OVERLAY state. FileInode::FileInode( - fusell::InodeNumber ino, + InodeNumber ino, TreeInodePtr parentInode, PathComponentPiece name, mode_t mode, @@ -184,7 +184,7 @@ FileInode::FileInode( // The FileInode is in MATERIALIZED_IN_OVERLAY state. FileInode::FileInode( - fusell::InodeNumber ino, + InodeNumber ino, TreeInodePtr parentInode, PathComponentPiece name, mode_t mode, @@ -193,16 +193,16 @@ FileInode::FileInode( : InodeBase(ino, mode_to_dtype(mode), std::move(parentInode), name), state_(folly::in_place, this, mode, ctime) {} -folly::Future FileInode::getattr() { +folly::Future FileInode::getattr() { // Future optimization opportunity: right now, if we have not already // materialized the data from the entry, we have to materialize it // from the store. If we augmented our metadata we could avoid this, // and this would speed up operations like `ls`. return stat().then( - [](const struct stat& st) { return fusell::Dispatcher::Attr{st}; }); + [](const struct stat& st) { return Dispatcher::Attr{st}; }); } -folly::Future FileInode::setInodeAttr( +folly::Future FileInode::setInodeAttr( const fuse_setattr_in& attr) { // Minor optimization: if we know that the file is being completely truncated // as part of this operation, there's no need to fetch the underlying data, @@ -214,7 +214,7 @@ folly::Future FileInode::setInodeAttr( return future.then([self = inodePtrFromThis(), attr]() { self->materializeInParent(); - auto result = fusell::Dispatcher::Attr{self->getMount()->initStatData()}; + auto result = Dispatcher::Attr{self->getMount()->initStatData()}; auto state = self->state_.wlock(); CHECK_EQ(State::MATERIALIZED_IN_OVERLAY, state->tag) @@ -354,7 +354,7 @@ folly::Optional FileInode::getBlobHash() const { return state_.rlock()->hash; } -folly::Future> FileInode::open(int flags) { +folly::Future> FileInode::open(int flags) { if (dtype_t::Symlink == getType()) { // Linux reports ELOOP if you try to open a symlink with O_NOFOLLOW set. // Since it isn't clear whether FUSE will allow this to happen, this @@ -562,7 +562,7 @@ folly::Future FileInode::readAll() { }); } -fusell::BufVec FileInode::read(size_t size, off_t off) { +BufVec FileInode::read(size_t size, off_t off) { // It's potentially possible here to optimize a fast path here only requiring // a read lock. However, since a write lock is required to update atime and // cache the file handle in the case of a materialized file, do the simple @@ -582,7 +582,7 @@ fusell::BufVec FileInode::read(size_t size, off_t off) { checkUnixError(res); buf->append(res); - return fusell::BufVec{std::move(buf)}; + return BufVec{std::move(buf)}; } else { // read() is either called by the FileHandle or FileInode. They must // guarantee openCount > 0. @@ -592,7 +592,7 @@ fusell::BufVec FileInode::read(size_t size, off_t off) { if (!cursor.canAdvance(off)) { // Seek beyond EOF. Return an empty result. - return fusell::BufVec{folly::IOBuf::wrapBuffer("", 0)}; + return BufVec{folly::IOBuf::wrapBuffer("", 0)}; } cursor.skip(off); @@ -600,11 +600,11 @@ fusell::BufVec FileInode::read(size_t size, off_t off) { std::unique_ptr result; cursor.cloneAtMost(result, size); - return fusell::BufVec{std::move(result)}; + return BufVec{std::move(result)}; } } -folly::Future FileInode::write(fusell::BufVec&& buf, off_t off) { +folly::Future FileInode::write(BufVec&& buf, off_t off) { auto state = state_.wlock(); if (State::MATERIALIZED_IN_OVERLAY != state->tag) { diff --git a/eden/fs/inodes/FileInode.h b/eden/fs/inodes/FileInode.h index 3b0abb50e2..0be76964de 100644 --- a/eden/fs/inodes/FileInode.h +++ b/eden/fs/inodes/FileInode.h @@ -23,11 +23,8 @@ class File; namespace facebook { namespace eden { -namespace fusell { -class BufVec; -} - class Blob; +class BufVec; class EdenFileHandle; class Hash; class ObjectStore; @@ -44,7 +41,7 @@ class FileInode : public InodeBase { * returns a new EdenFileHandle to it. */ static std::tuple create( - fusell::InodeNumber ino, + InodeNumber ino, TreeInodePtr parentInode, PathComponentPiece name, mode_t mode, @@ -57,7 +54,7 @@ class FileInode : public InodeBase { * NOT_LOADED state. */ FileInode( - fusell::InodeNumber ino, + InodeNumber ino, TreeInodePtr parentInode, PathComponentPiece name, mode_t mode, @@ -69,19 +66,19 @@ class FileInode : public InodeBase { * Overlay::openFile. */ FileInode( - fusell::InodeNumber ino, + InodeNumber ino, TreeInodePtr parentInode, PathComponentPiece name, mode_t mode, folly::File&& file, timespec ctime); - folly::Future getattr() override; + folly::Future getattr() override; /// Throws InodeError EINVAL if inode is not a symbolic node. folly::Future readlink(); - folly::Future> open(int flags); + folly::Future> open(int flags); folly::Future> listxattr() override; folly::Future getxattr(folly::StringPiece name) override; @@ -359,9 +356,9 @@ class FileInode : public InodeBase { * Precondition: openCount > 0. This is held because read is only called by * FileInode or FileHandle. */ - fusell::BufVec read(size_t size, off_t off); + BufVec read(size_t size, off_t off); - folly::Future write(fusell::BufVec&& buf, off_t off); + folly::Future write(BufVec&& buf, off_t off); folly::Future stat(); void flush(uint64_t lock_owner); @@ -376,7 +373,7 @@ class FileInode : public InodeBase { * Helper function used in setattr to perform FileInode specific operations * during setattr. */ - folly::Future setInodeAttr( + folly::Future setInodeAttr( const fuse_setattr_in& attr) override; folly::Synchronized state_; diff --git a/eden/fs/inodes/InodeBase.cpp b/eden/fs/inodes/InodeBase.cpp index d1d67834c6..30f580f86c 100644 --- a/eden/fs/inodes/InodeBase.cpp +++ b/eden/fs/inodes/InodeBase.cpp @@ -42,7 +42,7 @@ InodeBase::InodeBase(EdenMount* mount) } InodeBase::InodeBase( - fusell::InodeNumber ino, + InodeNumber ino, dtype_t type, TreeInodePtr parent, PathComponentPiece name) @@ -58,7 +58,7 @@ InodeBase::InodeBase( } // See Dispatcher::getattr -folly::Future InodeBase::getattr() { +folly::Future InodeBase::getattr() { FUSELL_NOT_IMPL(); } folly::Future InodeBase::setxattr( @@ -316,7 +316,7 @@ ParentInodeInfo InodeBase::getParentInfo() const { } // See Dispatcher::setattr -folly::Future InodeBase::setattr( +folly::Future InodeBase::setattr( const fuse_setattr_in& attr) { // Check if gid and uid are same or not. if (attr.valid & (FATTR_UID | FATTR_GID)) { diff --git a/eden/fs/inodes/InodeBase.h b/eden/fs/inodes/InodeBase.h index cf7a3b6b35..4afbdee3d3 100644 --- a/eden/fs/inodes/InodeBase.h +++ b/eden/fs/inodes/InodeBase.h @@ -41,14 +41,14 @@ class InodeBase { * Constructor for all non-root inodes. */ InodeBase( - fusell::InodeNumber ino, + InodeNumber ino, dtype_t type, TreeInodePtr parent, PathComponentPiece name); virtual ~InodeBase(); - fusell::InodeNumber getNodeId() const { + InodeNumber getNodeId() const { return ino_; } @@ -102,11 +102,10 @@ class InodeBase { } // See Dispatcher::getattr - virtual folly::Future getattr(); + virtual folly::Future getattr(); // See Dispatcher::setattr - virtual folly::Future setattr( - const fuse_setattr_in& attr); + virtual folly::Future setattr(const fuse_setattr_in& attr); virtual folly::Future setxattr(folly::StringPiece name, folly::StringPiece value, int flags); @@ -402,10 +401,10 @@ class InodeBase { * present and fills timestamps and other FileInode related fields or * TreeInode related fields. */ - virtual folly::Future setInodeAttr( + virtual folly::Future setInodeAttr( const fuse_setattr_in& attr) = 0; - fusell::InodeNumber const ino_; + InodeNumber const ino_; dtype_t const type_; @@ -423,8 +422,8 @@ class InodeBase { * API has performed on this inode. We must remember this inode number * for as long as the FUSE API has references to it. (However, we may unload * the Inode object itself, destroying ourself and letting the InodeMap - * simply remember the association of the fusell::InodeNumber with our - * location in the file system.) + * simply remember the association of the InodeNumber with our location in + * the file system.) */ std::atomic numFuseReferences_{0}; diff --git a/eden/fs/inodes/InodeMap.cpp b/eden/fs/inodes/InodeMap.cpp index 91f11ff0c8..aa0efdb507 100644 --- a/eden/fs/inodes/InodeMap.cpp +++ b/eden/fs/inodes/InodeMap.cpp @@ -49,7 +49,7 @@ InodeMap::~InodeMap() { // destroy the EdenMount. } -void InodeMap::setMaximumExistingInodeNumber(fusell::InodeNumber max) { +void InodeMap::setMaximumExistingInodeNumber(InodeNumber max) { DCHECK_GE(max, kRootNodeId); auto previous = nextInodeNumber_.exchange(max.get() + 1); DCHECK_EQ(0, previous) << "setMaximumExistingInodeNumber called twice"; @@ -82,8 +82,8 @@ void InodeMap::initializeFromTakeover( nextInodeNumber_.store(takeover.nextInodeNumber); for (const auto& entry : takeover.unloadedInodes) { auto unloadedEntry = UnloadedInode( - fusell::InodeNumber::fromThrift(entry.inodeNumber), - fusell::InodeNumber::fromThrift(entry.parentInode), + InodeNumber::fromThrift(entry.inodeNumber), + InodeNumber::fromThrift(entry.parentInode), PathComponentPiece{entry.name}); unloadedEntry.numFuseReferences = entry.numFuseReferences; if (entry.numFuseReferences < 0) { @@ -101,8 +101,7 @@ void InodeMap::initializeFromTakeover( unloadedEntry.mode = entry.mode; auto result = data->unloadedInodes_.emplace( - fusell::InodeNumber::fromThrift(entry.inodeNumber), - std::move(unloadedEntry)); + InodeNumber::fromThrift(entry.inodeNumber), std::move(unloadedEntry)); if (!result.second) { auto message = folly::to( "failed to emplace inode number ", @@ -114,7 +113,7 @@ void InodeMap::initializeFromTakeover( } } -Future InodeMap::lookupInode(fusell::InodeNumber number) { +Future InodeMap::lookupInode(InodeNumber number) { // Lock the data. // We hold it while doing most of our work below, but explicitly unlock it // before triggering inode loading or before fulfilling any Promises. @@ -136,9 +135,9 @@ Future InodeMap::lookupInode(fusell::InodeNumber number) { // Look up the data in the unloadedInodes_ map. auto unloadedIter = data->unloadedInodes_.find(number); if (UNLIKELY(unloadedIter == data->unloadedInodes_.end())) { - // This generally shouldn't happen. If a fusell::InodeNumber has been - // allocated we should always know about it. It's a bug if our caller calls - // us with an invalid fusell::InodeNumber number. + // This generally shouldn't happen. If a InodeNumber has been allocated we + // should always know about it. It's a bug if our caller calls us with an + // invalid InodeNumber number. auto bug = EDEN_BUG() << "InodeMap called with unknown inode number " << number; return folly::makeFuture(bug.toException()); @@ -239,7 +238,7 @@ void InodeMap::setupParentLookupPromise( Promise& promise, PathComponentPiece childName, bool isUnlinked, - fusell::InodeNumber childInodeNumber, + InodeNumber childInodeNumber, folly::Optional hash, mode_t mode) { promise.getFuture() @@ -261,7 +260,7 @@ void InodeMap::startChildLookup( const InodePtr& parent, PathComponentPiece childName, bool isUnlinked, - fusell::InodeNumber childInodeNumber, + InodeNumber childInodeNumber, folly::Optional hash, mode_t mode) { auto treeInode = parent.asTreePtrOrNull(); @@ -322,7 +321,7 @@ InodeMap::PromiseVector InodeMap::inodeLoadComplete(InodeBase* inode) { } void InodeMap::inodeLoadFailed( - fusell::InodeNumber number, + InodeNumber number, const folly::exception_wrapper& ex) { XLOG(ERR) << "failed to load inode " << number << ": " << folly::exceptionStr(ex); @@ -332,8 +331,7 @@ void InodeMap::inodeLoadFailed( } } -InodeMap::PromiseVector InodeMap::extractPendingPromises( - fusell::InodeNumber number) { +InodeMap::PromiseVector InodeMap::extractPendingPromises(InodeNumber number) { PromiseVector promises; { auto data = data_.wlock(); @@ -346,17 +344,17 @@ InodeMap::PromiseVector InodeMap::extractPendingPromises( return promises; } -Future InodeMap::lookupTreeInode(fusell::InodeNumber number) { +Future InodeMap::lookupTreeInode(InodeNumber number) { return lookupInode(number).then( [](const InodePtr& inode) { return inode.asTreePtr(); }); } -Future InodeMap::lookupFileInode(fusell::InodeNumber number) { +Future InodeMap::lookupFileInode(InodeNumber number) { return lookupInode(number).then( [](const InodePtr& inode) { return inode.asFilePtr(); }); } -InodePtr InodeMap::lookupLoadedInode(fusell::InodeNumber number) { +InodePtr InodeMap::lookupLoadedInode(InodeNumber number) { auto data = data_.rlock(); auto it = data->loadedInodes_.find(number); if (it == data->loadedInodes_.end()) { @@ -365,7 +363,7 @@ InodePtr InodeMap::lookupLoadedInode(fusell::InodeNumber number) { return it->second.getPtr(); } -TreeInodePtr InodeMap::lookupLoadedTree(fusell::InodeNumber number) { +TreeInodePtr InodeMap::lookupLoadedTree(InodeNumber number) { auto inode = lookupLoadedInode(number); if (!inode) { return nullptr; @@ -373,7 +371,7 @@ TreeInodePtr InodeMap::lookupLoadedTree(fusell::InodeNumber number) { return inode.asTreePtr(); } -FileInodePtr InodeMap::lookupLoadedFile(fusell::InodeNumber number) { +FileInodePtr InodeMap::lookupLoadedFile(InodeNumber number) { auto inode = lookupLoadedInode(number); if (!inode) { return nullptr; @@ -381,13 +379,13 @@ FileInodePtr InodeMap::lookupLoadedFile(fusell::InodeNumber number) { return inode.asFilePtr(); } -UnloadedInodeData InodeMap::lookupUnloadedInode(fusell::InodeNumber number) { +UnloadedInodeData InodeMap::lookupUnloadedInode(InodeNumber number) { auto data = data_.rlock(); auto it = data->unloadedInodes_.find(number); if (it == data->unloadedInodes_.end()) { - // This generally shouldn't happen. If a fusell::InodeNumber has been - // allocated we should always know about it. It's a bug if our caller calls - // us with an invalid fusell::InodeNumber number. + // This generally shouldn't happen. If a InodeNumber has been allocated we + // should always know about it. It's a bug if our caller calls us with an + // invalid InodeNumber number. XLOG(ERR) << "InodeMap called with unknown inode number " << number; throwSystemErrorExplicit(EINVAL, "unknown inode number ", number); } @@ -396,13 +394,13 @@ UnloadedInodeData InodeMap::lookupUnloadedInode(fusell::InodeNumber number) { } folly::Optional InodeMap::getPathForInode( - fusell::InodeNumber inodeNumber) { + InodeNumber inodeNumber) { auto data = data_.rlock(); return getPathForInodeHelper(inodeNumber, data); } folly::Optional InodeMap::getPathForInodeHelper( - fusell::InodeNumber inodeNumber, + InodeNumber inodeNumber, const folly::Synchronized::ConstLockedPtr& data) { auto loadedIt = data->loadedInodes_.find(inodeNumber); if (loadedIt != data->loadedInodes_.cend()) { @@ -433,7 +431,7 @@ folly::Optional InodeMap::getPathForInodeHelper( } } -void InodeMap::decFuseRefcount(fusell::InodeNumber number, uint32_t count) { +void InodeMap::decFuseRefcount(InodeNumber number, uint32_t count) { auto data = data_.wlock(); // First check in the loaded inode map @@ -731,7 +729,7 @@ void InodeMap::unloadInode( bool InodeMap::shouldLoadChild( const TreeInode* parent, PathComponentPiece name, - fusell::InodeNumber childInode, + InodeNumber childInode, folly::Promise promise) { auto data = data_.wlock(); // This is a sanity check - no big deal if we race with allocateInodeNumber. @@ -739,7 +737,7 @@ bool InodeMap::shouldLoadChild( auto iter = data->unloadedInodes_.find(childInode); UnloadedInode* unloadedData{nullptr}; if (iter == data->unloadedInodes_.end()) { - fusell::InodeNumber parentNumber = parent->getNodeId(); + InodeNumber parentNumber = parent->getNodeId(); auto newUnloadedData = UnloadedInode(childInode, parentNumber, name); auto ret = data->unloadedInodes_.emplace(childInode, std::move(newUnloadedData)); @@ -761,24 +759,23 @@ bool InodeMap::shouldLoadChild( return isFirstPromise; } -fusell::InodeNumber InodeMap::allocateInodeNumber() { - // fusell::InodeNumber should generally be 64-bits wide, in which case it - // isn't even worth bothering to handle the case where nextInodeNumber_ wraps. - // We don't need to bother checking for conflicts with existing inode numbers - // since this can only happen if we wrap around. - // We don't currently support platforms with 32-bit inode numbers. +InodeNumber InodeMap::allocateInodeNumber() { + // InodeNumber should generally be 64-bits wide, in which case it isn't even + // worth bothering to handle the case where nextInodeNumber_ wraps. We don't + // need to bother checking for conflicts with existing inode numbers since + // this can only happen if we wrap around. We don't currently support + // platforms with 32-bit inode numbers. static_assert( - sizeof(nextInodeNumber_) == sizeof(fusell::InodeNumber), - "expected nextInodeNumber_ and fusell::InodeNumber to have the same size"); + sizeof(nextInodeNumber_) == sizeof(InodeNumber), + "expected nextInodeNumber_ and InodeNumber to have the same size"); static_assert( - sizeof(fusell::InodeNumber) >= 8, - "expected fusell::InodeNumber to be at least 64 bits"); + sizeof(InodeNumber) >= 8, "expected InodeNumber to be at least 64 bits"); // This could be a relaxed atomic operation. It doesn't matter on x86 but // might on ARM. auto previous = nextInodeNumber_++; DCHECK_NE(0, previous) << "allocateInodeNumber called before initialize"; - return fusell::InodeNumber{previous}; + return InodeNumber{previous}; } void InodeMap::inodeCreated(const InodePtr& inode) { diff --git a/eden/fs/inodes/InodeMap.h b/eden/fs/inodes/InodeMap.h index 0d8667a5bb..a0627c1937 100644 --- a/eden/fs/inodes/InodeMap.h +++ b/eden/fs/inodes/InodeMap.h @@ -35,28 +35,25 @@ class TreeInode; class ParentInodeInfo; struct UnloadedInodeData { - UnloadedInodeData(fusell::InodeNumber p, PathComponentPiece n) - : parent(p), name(n) {} + UnloadedInodeData(InodeNumber p, PathComponentPiece n) : parent(p), name(n) {} - fusell::InodeNumber const parent; + InodeNumber const parent; PathComponent const name; }; class InodeMapLock; /** - * InodeMap allows looking up Inode objects based on a inode number - * (fusell::InodeNumber). + * InodeMap allows looking up Inode objects based on a inode number. * * All operations on this class are thread-safe. * - * Note that fusell::InodeNumber values and Inode objects have separate - * lifetimes: - * - fusell::InodeNumber numbers are allocated when we need to return a - * fusell::InodeNumber value to the FUSE APIs. These are generally allocated by - * lookup() calls. FUSE will call forget() to let us know when we can forget - * about a fusell::InodeNumber value. (We may not necessarily forget about the - * fusell::InodeNumber value immediately, though.) + * Note that InodeNumber values and Inode objects have separate lifetimes: + * - Inode numbers are allocated when we need to return a InodeNumber value to + * the FUSE APIs. These are generally allocated by lookup() calls. FUSE will + * call forget() to let us know when we can forget about a InodeNumber value. + * (We may not necessarily forget about the InodeNumber value immediately, + * though.) * * - InodeBase objects are needed when we have to actually operate on a file or * directory. Any operation more than looking up a file name (or some of its @@ -71,26 +68,26 @@ class InodeMapLock; * the entire repository we don't want to keep Inode objects loaded for all * files forever.) * - * We can unload an InodeBase object even when the fusell::InodeNumber value is - * still valid. Therefore this class contains two separate maps: - * - (fusell::InodeNumber --> InodeBase) + * We can unload an InodeBase object even when the InodeNumber value is still + * valid. Therefore this class contains two separate maps: + * - (InodeNumber --> InodeBase) * This map stores all currently loaded Inodes. - * - (fusell::InodeNumber --> (parent fusell::InodeNumber, name)) + * - (InodeNumber --> (parent InodeNumber, name)) * This map contains information about Inodes that are not currently loaded. * This map contains enough information to identify the file or directory in * question if we do need to load the inode. The parent directory's - * fusell::InodeNumber may not be loaded either; we have to load it first in - * order to load the inode in question. + * InodeNumber may not be loaded either; we have to load it first in order to + * load the inode in question. * - * Additional Notes about fusell::InodeNumber allocation: - * - fusell::InodeNumber numbers are primarily allocated via the + * Additional Notes about InodeNumber allocation: + * - InodeNumber numbers are primarily allocated via the * EdenDispatcher::lookup() call. * - * Rather than only allocate a fusell::InodeNumber in this case, we go ahead - * and load the actual TreeInode/FileInode, since FUSE is very likely to make - * another call for this inode next. Therefore, in this case the newly - * allocated inode number is inserted directly into loadedInodes_, without ever - * being in unloadedInodes_. + * Rather than only allocate a InodeNumber in this case, we go ahead and load + * the actual TreeInode/FileInode, since FUSE is very likely to make another + * call for this inode next. Therefore, in this case the newly allocated + * inode number is inserted directly into loadedInodes_, without ever being + * in unloadedInodes_. * * The unloadedInodes_ map is primarily for inodes that were loaded and have * since been unloaded due to inactivity. @@ -98,8 +95,8 @@ class InodeMapLock; * - Inode objects can either be allocated via EdenDispatcher::lookup(), or via * an operation on a TreeInode looking up a child entry. * - * We currently always allocate a fusell::InodeNumber value for any new Inode - * object even if it is not needed yet by the FUSE APIs. + * We currently always allocate a InodeNumber value for any new Inode object + * even if it is not needed yet by the FUSE APIs. */ class InodeMap { public: @@ -121,7 +118,7 @@ class InodeMap { * mounted before, this should be the maximum value across all the * outstanding inodes. */ - void setMaximumExistingInodeNumber(fusell::InodeNumber max); + void setMaximumExistingInodeNumber(InodeNumber max); /** * Initialize the InodeMap @@ -175,7 +172,7 @@ class InodeMap { * invoked immediately in the calling thread (if the Inode is already * available), or it may be invoked later in a different thread. */ - folly::Future lookupInode(fusell::InodeNumber number); + folly::Future lookupInode(InodeNumber number); /** * Lookup a TreeInode object by inode number. @@ -184,7 +181,7 @@ class InodeMap { * The returned Future throws ENOTDIR if this inode number does not refer to * a directory. */ - folly::Future lookupTreeInode(fusell::InodeNumber number); + folly::Future lookupTreeInode(InodeNumber number); /** * Lookup a FileInode object by inode number. @@ -193,7 +190,7 @@ class InodeMap { * The returned Future throws EISDIR if this inode number refers to a * directory. */ - folly::Future lookupFileInode(fusell::InodeNumber number); + folly::Future lookupFileInode(InodeNumber number); /** * Lookup an Inode object by inode number, if it alread exists. @@ -202,7 +199,7 @@ class InodeMap { * but nullptr if one is not loaded. lookupUnloadedInode() can then be * called to find data for the unloaded inode. */ - InodePtr lookupLoadedInode(fusell::InodeNumber number); + InodePtr lookupLoadedInode(InodeNumber number); /** * Lookup a loaded TreeInode object by inode number, if it alread exists. @@ -210,7 +207,7 @@ class InodeMap { * Returns nullptr if this inode object is not currently loaded. * Throws ENOTDIR if this inode is loaded but does not refer to a directory. */ - TreeInodePtr lookupLoadedTree(fusell::InodeNumber number); + TreeInodePtr lookupLoadedTree(InodeNumber number); /** * Lookup a loaded FileInode object by inode number, if it alread exists. @@ -218,7 +215,7 @@ class InodeMap { * Returns nullptr if this inode object is not currently loaded. * Throws EISDIR if this inode is loaded but refers to a directory. */ - FileInodePtr lookupLoadedFile(fusell::InodeNumber number); + FileInodePtr lookupLoadedFile(InodeNumber number); /** * Lookup data about an unloaded Inode object. @@ -227,7 +224,7 @@ class InodeMap { * inode is not currently loaded. Unloaded inode data will only be found if * the object is not currently loaded. */ - UnloadedInodeData lookupUnloadedInode(fusell::InodeNumber number); + UnloadedInodeData lookupUnloadedInode(InodeNumber number); /** * Recursively determines the path for a loaded or unloaded inode. If the @@ -239,8 +236,7 @@ class InodeMap { * If there is an unlinked inode in the path, this function returns * folly::none. If the inode is invalid, it throws EINVAL. */ - folly::Optional getPathForInode( - fusell::InodeNumber inodeNumber); + folly::Optional getPathForInode(InodeNumber inodeNumber); /** * Decrement the number of outstanding FUSE references to an inode number. @@ -252,7 +248,7 @@ class InodeMap { * object. Therefore decrements are performed on the InodeMap so that we can * avoid loading an Inode object just to decrement its reference count. */ - void decFuseRefcount(fusell::InodeNumber number, uint32_t count = 1); + void decFuseRefcount(InodeNumber number, uint32_t count = 1); /** * Shutdown the InodeMap. @@ -345,7 +341,7 @@ class InodeMap { bool shouldLoadChild( const TreeInode* parent, PathComponentPiece name, - fusell::InodeNumber childInode, + InodeNumber childInode, folly::Promise promise); /** @@ -369,7 +365,7 @@ class InodeMap { * This should be called when an attempt to load a child inode fails. */ void inodeLoadFailed( - fusell::InodeNumber number, + InodeNumber number, const folly::exception_wrapper& exception); /** @@ -389,7 +385,7 @@ class InodeMap { * TODO: It would be easy to extend this function to allocate a range of * inode values in one atomic operation. */ - fusell::InodeNumber allocateInodeNumber(); + InodeNumber allocateInodeNumber(); void inodeCreated(const InodePtr& inode); @@ -422,13 +418,13 @@ class InodeMap { */ struct UnloadedInode { UnloadedInode( - fusell::InodeNumber num, - fusell::InodeNumber parentNum, + InodeNumber num, + InodeNumber parentNum, PathComponentPiece entryName) : number(num), parent(parentNum), name(entryName) {} - fusell::InodeNumber const number; - fusell::InodeNumber const parent; + InodeNumber const number; + InodeNumber const parent; PathComponent const name; /** @@ -514,12 +510,12 @@ class InodeMap { * looked up the InodeMap will wrap the Inode in an InodePtr so that the * caller acquires a reference. */ - std::unordered_map loadedInodes_; + std::unordered_map loadedInodes_; /** * The map of currently unloaded inodes */ - std::unordered_map unloadedInodes_; + std::unordered_map unloadedInodes_; /** * A promise to fulfill once shutdown() completes. @@ -544,14 +540,14 @@ class InodeMap { folly::Promise& promise, PathComponentPiece childName, bool isUnlinked, - fusell::InodeNumber childInodeNumber, + InodeNumber childInodeNumber, folly::Optional hash, mode_t mode); void startChildLookup( const InodePtr& parent, PathComponentPiece childName, bool isUnlinked, - fusell::InodeNumber childInodeNumber, + InodeNumber childInodeNumber, folly::Optional hash, mode_t mode); @@ -562,10 +558,10 @@ class InodeMap { * This method acquires the data_ lock internally. * It should never be called while already holding the lock. */ - PromiseVector extractPendingPromises(fusell::InodeNumber number); + PromiseVector extractPendingPromises(InodeNumber number); folly::Optional getPathForInodeHelper( - fusell::InodeNumber inodeNumber, + InodeNumber inodeNumber, const folly::Synchronized::ConstLockedPtr& data); /** diff --git a/eden/fs/inodes/Overlay.cpp b/eden/fs/inodes/Overlay.cpp index 3a412c642b..a495713a97 100644 --- a/eden/fs/inodes/Overlay.cpp +++ b/eden/fs/inodes/Overlay.cpp @@ -205,7 +205,7 @@ void Overlay::initNewOverlay() { } Optional Overlay::loadOverlayDir( - fusell::InodeNumber inodeNumber, + InodeNumber inodeNumber, InodeMap* /*inodeMap*/) const { TreeInode::Dir result; auto dirData = deserializeOverlayDir(inodeNumber, result.timeStamps); @@ -225,16 +225,15 @@ Optional Overlay::loadOverlayDir( result.entries.emplace( PathComponentPiece{name}, value.mode, - fusell::InodeNumber::fromThrift(value.inodeNumber)); + InodeNumber::fromThrift(value.inodeNumber)); } } return folly::Optional(std::move(result)); } -void Overlay::saveOverlayDir( - fusell::InodeNumber inodeNumber, - const TreeInode::Dir& dir) const { +void Overlay::saveOverlayDir(InodeNumber inodeNumber, const TreeInode::Dir& dir) + const { // TODO: T20282158 clean up access of child inode information. // // Translate the data to the thrift equivalents @@ -278,14 +277,14 @@ void Overlay::saveOverlayDir( getFilePath(inodeNumber).stringPiece(), iov.data(), iov.size()); } -void Overlay::removeOverlayData(fusell::InodeNumber inodeNumber) const { +void Overlay::removeOverlayData(InodeNumber inodeNumber) const { auto path = getFilePath(inodeNumber); if (::unlink(path.value().c_str()) != 0 && errno != ENOENT) { folly::throwSystemError("error unlinking overlay file: ", path); } } -fusell::InodeNumber Overlay::getMaxRecordedInode() { +InodeNumber Overlay::getMaxRecordedInode() { // TODO: We should probably store the max inode number in the header file // during graceful unmount. When opening an overlay we can then simply read // back the max inode number from this file if the overlay was shut down @@ -304,7 +303,7 @@ fusell::InodeNumber Overlay::getMaxRecordedInode() { // simpler scan of opening every single file. For now we have to walk the // directory tree from the root downwards. auto maxInode = kRootNodeId; - std::vector toProcess; + std::vector toProcess; toProcess.push_back(maxInode); while (!toProcess.empty()) { auto dirInodeNumber = toProcess.back(); @@ -320,8 +319,7 @@ fusell::InodeNumber Overlay::getMaxRecordedInode() { if (entry.second.inodeNumber == 0) { continue; } - auto entryInode = - fusell::InodeNumber::fromThrift(entry.second.inodeNumber); + auto entryInode = InodeNumber::fromThrift(entry.second.inodeNumber); maxInode = std::max(maxInode, entryInode); if (mode_to_dtype(entry.second.mode) == dtype_t::Dir) { toProcess.push_back(entryInode); @@ -343,8 +341,7 @@ fusell::InodeNumber Overlay::getMaxRecordedInode() { auto entryInodeNumber = folly::tryTo(entry.path().filename().string()); if (entryInodeNumber.hasValue()) { - maxInode = - std::max(maxInode, fusell::InodeNumber{entryInodeNumber.value()}); + maxInode = std::max(maxInode, InodeNumber{entryInodeNumber.value()}); } } } @@ -356,7 +353,7 @@ const AbsolutePath& Overlay::getLocalDir() const { return localDir_; } -AbsolutePath Overlay::getFilePath(fusell::InodeNumber inodeNumber) const { +AbsolutePath Overlay::getFilePath(InodeNumber inodeNumber) const { std::array subdir; formatSubdirPath( MutableStringPiece{subdir.data(), subdir.size()}, inodeNumber.get()); @@ -367,7 +364,7 @@ AbsolutePath Overlay::getFilePath(fusell::InodeNumber inodeNumber) const { } Optional Overlay::deserializeOverlayDir( - fusell::InodeNumber inodeNumber, + InodeNumber inodeNumber, InodeTimestamps& timeStamps) const { auto path = getFilePath(inodeNumber); @@ -467,7 +464,7 @@ void Overlay::addHeaderToOverlayFile(int fd, timespec ctime) { // Helper function to create an overlay file folly::File Overlay::createOverlayFile( - fusell::InodeNumber childNumber, + InodeNumber childNumber, timespec ctime) { auto filePath = getFilePath(childNumber); folly::File file(filePath.c_str(), O_RDWR | O_CREAT | O_EXCL, 0600); diff --git a/eden/fs/inodes/Overlay.h b/eden/fs/inodes/Overlay.h index b7a8e4901e..ebcf5e46b7 100644 --- a/eden/fs/inodes/Overlay.h +++ b/eden/fs/inodes/Overlay.h @@ -50,19 +50,17 @@ class Overlay { /** Returns the path to the root of the Overlay storage area */ const AbsolutePath& getLocalDir() const; - void saveOverlayDir( - fusell::InodeNumber inodeNumber, - const TreeInode::Dir& dir) const; + void saveOverlayDir(InodeNumber inodeNumber, const TreeInode::Dir& dir) const; folly::Optional loadOverlayDir( - fusell::InodeNumber inodeNumber, + InodeNumber inodeNumber, InodeMap* inodeMap) const; - void removeOverlayData(fusell::InodeNumber inodeNumber) const; + void removeOverlayData(InodeNumber inodeNumber) const; /** * Get the path to the overlay file for the given inode */ - AbsolutePath getFilePath(fusell::InodeNumber inodeNumber) const; + AbsolutePath getFilePath(InodeNumber inodeNumber) const; /** * Creates header for the files stored in Overlay */ @@ -84,9 +82,7 @@ class Overlay { /** * Helper function that creates a new overlay file and adds header to it */ - folly::File createOverlayFile( - fusell::InodeNumber childNumber, - timespec ctime); + folly::File createOverlayFile(InodeNumber childNumber, timespec ctime); /** * Updates the timestamps of an overlay file appropriately @@ -103,7 +99,7 @@ class Overlay { * handed out from this point forwards are always greater than any inodes * already tracked in the overlay. */ - fusell::InodeNumber getMaxRecordedInode(); + InodeNumber getMaxRecordedInode(); /** * Constants for an header in overlay file. @@ -119,7 +115,7 @@ class Overlay { void readExistingOverlay(int infoFD); void initNewOverlay(); folly::Optional deserializeOverlayDir( - fusell::InodeNumber inodeNumber, + InodeNumber inodeNumber, InodeTimestamps& timeStamps) const; /** * Helper function to add header to the overlay file diff --git a/eden/fs/inodes/ServerState.h b/eden/fs/inodes/ServerState.h index 9821585d44..0996f7e278 100644 --- a/eden/fs/inodes/ServerState.h +++ b/eden/fs/inodes/ServerState.h @@ -59,7 +59,7 @@ class ServerState { * Get the ThreadLocalEdenStats object that tracks process-wide (rather than * per-mount) statistics. */ - fusell::ThreadLocalEdenStats& getStats() { + ThreadLocalEdenStats& getStats() { return edenStats_; } @@ -97,7 +97,7 @@ class ServerState { private: AbsolutePath socketPath_; UserInfo userInfo_; - fusell::ThreadLocalEdenStats edenStats_; + ThreadLocalEdenStats edenStats_; std::shared_ptr privHelper_; std::shared_ptr threadPool_; std::shared_ptr clock_; diff --git a/eden/fs/inodes/TreeInode.cpp b/eden/fs/inodes/TreeInode.cpp index c4cf590f3a..7fa9d0204e 100644 --- a/eden/fs/inodes/TreeInode.cpp +++ b/eden/fs/inodes/TreeInode.cpp @@ -91,7 +91,7 @@ class TreeInode::IncompleteInodeLoad { TreeInode* inode, Future>&& future, PathComponentPiece name, - fusell::InodeNumber number) + InodeNumber number) : treeInode_{inode}, number_{number}, name_{name}, @@ -132,13 +132,13 @@ class TreeInode::IncompleteInodeLoad { // to null in any IncompleteInodeLoad objects that are moved-away from. // We don't actually own the TreeInode and we don't destroy it. std::unique_ptr treeInode_; - fusell::InodeNumber number_; + InodeNumber number_; PathComponent name_; Future> future_; }; TreeInode::TreeInode( - fusell::InodeNumber ino, + InodeNumber ino, TreeInodePtr parent, PathComponentPiece name, std::shared_ptr&& tree) @@ -152,7 +152,7 @@ TreeInode::TreeInode( parent->getInodeMap())) {} TreeInode::TreeInode( - fusell::InodeNumber ino, + InodeNumber ino, TreeInodePtr parent, PathComponentPiece name, Dir&& dir) @@ -173,12 +173,12 @@ TreeInode::TreeInode(EdenMount* mount, Dir&& dir) TreeInode::~TreeInode() {} -folly::Future TreeInode::getattr() { +folly::Future TreeInode::getattr() { return getAttrLocked(&*contents_.rlock()); } -fusell::Dispatcher::Attr TreeInode::getAttrLocked(const Dir* contents) { - fusell::Dispatcher::Attr attr(getMount()->initStatData()); +Dispatcher::Attr TreeInode::getAttrLocked(const Dir* contents) { + Dispatcher::Attr attr(getMount()->initStatData()); attr.st.st_mode = S_IFDIR | 0755; attr.st.st_ino = getNodeId().get(); @@ -209,7 +209,7 @@ Future TreeInode::getOrLoadChild(PathComponentPiece name) { folly::Optional> returnFuture; InodePtr childInodePtr; InodeMap::PromiseVector promises; - fusell::InodeNumber childNumber; + InodeNumber childNumber; { auto contents = contents_.wlock(); auto iter = contents->entries.find(name); @@ -337,7 +337,7 @@ Future TreeInode::getChildRecursive(RelativePathPiece path) { return future.ensure([p = std::move(processor)]() mutable { p.reset(); }); } -fusell::InodeNumber TreeInode::getChildInodeNumber(PathComponentPiece name) { +InodeNumber TreeInode::getChildInodeNumber(PathComponentPiece name) { auto contents = contents_.wlock(); auto iter = contents->entries.find(name); if (iter == contents->entries.end()) { @@ -360,7 +360,7 @@ fusell::InodeNumber TreeInode::getChildInodeNumber(PathComponentPiece name) { void TreeInode::loadUnlinkedChildInode( PathComponentPiece name, - fusell::InodeNumber number, + InodeNumber number, folly::Optional hash, mode_t mode) { try { @@ -417,9 +417,7 @@ void TreeInode::loadUnlinkedChildInode( } } -void TreeInode::loadChildInode( - PathComponentPiece name, - fusell::InodeNumber number) { +void TreeInode::loadChildInode(PathComponentPiece name, InodeNumber number) { folly::Optional>> future; { auto contents = contents_.rlock(); @@ -458,7 +456,7 @@ void TreeInode::loadChildInode( void TreeInode::registerInodeLoadComplete( folly::Future>& future, PathComponentPiece name, - fusell::InodeNumber number) { + InodeNumber number) { // This method should never be called with the contents_ lock held. If the // future is already ready we will try to acquire the contents_ lock now. future @@ -515,7 +513,7 @@ void TreeInode::inodeLoadComplete( Future> TreeInode::startLoadingInodeNoThrow( const Entry& entry, PathComponentPiece name, - fusell::InodeNumber number) noexcept { + InodeNumber number) noexcept { // The callers of startLoadingInodeNoThrow() need to make sure that they // always call InodeMap::inodeLoadComplete() or InodeMap::inodeLoadFailed() // afterwards. @@ -537,7 +535,7 @@ Future> TreeInode::startLoadingInodeNoThrow( Future> TreeInode::startLoadingInode( const Entry& entry, PathComponentPiece name, - fusell::InodeNumber number) { + InodeNumber number) { XLOG(DBG5) << "starting to load inode " << number << ": " << getLogPath() << " / \"" << name << "\""; DCHECK(entry.getInode() == nullptr); @@ -581,7 +579,7 @@ Future> TreeInode::startLoadingInode( number, inodePtrFromThis(), name, std::move(overlayDir.value())); } -std::shared_ptr TreeInode::opendir() { +std::shared_ptr TreeInode::opendir() { return std::make_shared(inodePtrFromThis()); } @@ -648,7 +646,7 @@ void TreeInode::materialize(const RenameLock* renameLock) { void TreeInode::childMaterialized( const RenameLock& renameLock, PathComponentPiece childName, - fusell::InodeNumber childNodeId) { + InodeNumber childNodeId) { { auto contents = contents_.wlock(); auto iter = contents->entries.find(childName); @@ -824,7 +822,7 @@ TreeInode::create(PathComponentPiece name, mode_t mode, int /*flags*/) { // Now that we have the file handle, let's look up the attributes. auto getattrResult = handle->getattr(); return getattrResult.then( - [=, handle = std::move(handle)](fusell::Dispatcher::Attr attr) mutable { + [=, handle = std::move(handle)](Dispatcher::Attr attr) mutable { CreateResult result(getMount()); // Return all of the results back to the kernel. @@ -1136,7 +1134,7 @@ folly::Future TreeInode::removeImpl( // Set the flushKernelCache parameter to true unless this was triggered by a // FUSE request, in which case the kernel will automatically update its // cache correctly. - bool flushKernelCache = !fusell::RequestData::isFuseRequest(); + bool flushKernelCache = !RequestData::isFuseRequest(); int errnoValue = tryRemoveChild(renameLock, name, nullChildPtr, flushKernelCache); if (errnoValue == 0) { @@ -2617,7 +2615,7 @@ void TreeInode::invalidateFuseCache(PathComponentPiece name) { } void TreeInode::invalidateFuseCacheIfRequired(PathComponentPiece name) { - if (fusell::RequestData::isFuseRequest()) { + if (RequestData::isFuseRequest()) { // no need to flush the cache if we are inside a FUSE request handler return; } @@ -2801,7 +2799,7 @@ folly::Future TreeInode::loadChildLocked( std::vector* pendingLoads) { DCHECK(!entry.getInode()); - fusell::InodeNumber childNumber; + InodeNumber childNumber; folly::Promise promise; auto future = promise.getFuture(); if (entry.hasInodeNumber()) { @@ -3127,10 +3125,10 @@ void TreeInode::updateOverlayHeader() const { Overlay::updateTimestampToHeader(file.fd(), contents->timeStamps); } } -folly::Future TreeInode::setInodeAttr( +folly::Future TreeInode::setInodeAttr( const fuse_setattr_in& attr) { materialize(); - fusell::Dispatcher::Attr result(getMount()->initStatData()); + Dispatcher::Attr result(getMount()->initStatData()); // We do not have size field for directories and currently TreeInode does not // have any field like FileInode::state_::mode to set the mode. May be in the diff --git a/eden/fs/inodes/TreeInode.h b/eden/fs/inodes/TreeInode.h index 7df9e6903c..988da645f9 100644 --- a/eden/fs/inodes/TreeInode.h +++ b/eden/fs/inodes/TreeInode.h @@ -76,18 +76,18 @@ class TreeInode : public InodeBase { /** * Create a hash for a non-materialized entry. */ - Entry(mode_t m, Hash hash) : Entry(m, fusell::InodeNumber{}, hash) {} + Entry(mode_t m, Hash hash) : Entry(m, InodeNumber{}, hash) {} /** * Create a hash for a non-materialized entry. */ - Entry(mode_t m, fusell::InodeNumber number, Hash hash) + Entry(mode_t m, InodeNumber number, Hash hash) : mode_(m), hash_{hash}, isLoading_(false), inodeNumber_(number) {} /** * Create a hash for a materialized entry. */ - Entry(mode_t m, fusell::InodeNumber number) + Entry(mode_t m, InodeNumber number) : mode_(m), isLoading_(false), inodeNumber_{number} { DCHECK(number.hasValue()); } @@ -119,18 +119,18 @@ class TreeInode : public InodeBase { bool hasInodeNumber() const { return inodeNumber_.hasValue(); } - fusell::InodeNumber getInodeNumber() const { + InodeNumber getInodeNumber() const { DCHECK(inodeNumber_.hasValue()); return inodeNumber_; } - void setInodeNumber(fusell::InodeNumber number) { + void setInodeNumber(InodeNumber number) { DCHECK(number.hasValue()); DCHECK(!inodeNumber_.hasValue()); DCHECK(!inode_); inodeNumber_ = number; } - void setMaterialized(fusell::InodeNumber inode) { + void setMaterialized(InodeNumber inode) { DCHECK(inodeNumber_.empty() || inode == inodeNumber_); inodeNumber_ = inode; hash_.clear(); @@ -251,7 +251,7 @@ class TreeInode : public InodeBase { * non-zero if hash_ is not set. (It may also be non-zero even when hash_ * is set.) */ - fusell::InodeNumber inodeNumber_{}; + InodeNumber inodeNumber_{}; /** * A pointer to the child inode, if it is loaded, or null if it is not @@ -300,7 +300,7 @@ class TreeInode : public InodeBase { /** Holds the results of a create operation. */ struct CreateResult { /// file attributes and cache ttls. - fusell::Dispatcher::Attr attr; + Dispatcher::Attr attr; /// The newly created inode instance. InodePtr inode; /// The newly opened file handle. @@ -310,14 +310,14 @@ class TreeInode : public InodeBase { }; TreeInode( - fusell::InodeNumber ino, + InodeNumber ino, TreeInodePtr parent, PathComponentPiece name, std::shared_ptr&& tree); /// Construct an inode that only has backing in the Overlay area TreeInode( - fusell::InodeNumber ino, + InodeNumber ino, TreeInodePtr parent, PathComponentPiece name, Dir&& dir); @@ -328,10 +328,10 @@ class TreeInode : public InodeBase { ~TreeInode() override; - folly::Future getattr() override; + folly::Future getattr() override; folly::Future prefetch() override; void updateOverlayHeader() const override; - fusell::Dispatcher::Attr getAttrLocked(const Dir* contents); + Dispatcher::Attr getAttrLocked(const Dir* contents); /** Implements the InodeBase method used by the Dispatcher * to create the Inode instance for a given name */ @@ -353,9 +353,9 @@ class TreeInode : public InodeBase { */ folly::Future getChildRecursive(RelativePathPiece name); - fusell::InodeNumber getChildInodeNumber(PathComponentPiece name); + InodeNumber getChildInodeNumber(PathComponentPiece name); - std::shared_ptr opendir(); + std::shared_ptr opendir(); folly::Future rename( PathComponentPiece name, TreeInodePtr newParent, @@ -483,7 +483,7 @@ class TreeInode : public InodeBase { void childMaterialized( const RenameLock& renameLock, PathComponentPiece childName, - fusell::InodeNumber childNodeId); + InodeNumber childNodeId); /** * Update this directory when a child entry is dematerialized. @@ -511,7 +511,7 @@ class TreeInode : public InodeBase { * The TreeInode will call InodeMap::inodeLoadComplete() or * InodeMap::inodeLoadFailed() when the load finishes. */ - void loadChildInode(PathComponentPiece name, fusell::InodeNumber number); + void loadChildInode(PathComponentPiece name, InodeNumber number); /** * Internal API only for use by InodeMap. @@ -524,7 +524,7 @@ class TreeInode : public InodeBase { */ void loadUnlinkedChildInode( PathComponentPiece name, - fusell::InodeNumber number, + InodeNumber number, folly::Optional hash, mode_t mode); @@ -620,7 +620,7 @@ class TreeInode : public InodeBase { void registerInodeLoadComplete( folly::Future>& future, PathComponentPiece name, - fusell::InodeNumber number); + InodeNumber number); void inodeLoadComplete( PathComponentPiece childName, std::unique_ptr childInode); @@ -628,12 +628,12 @@ class TreeInode : public InodeBase { folly::Future> startLoadingInodeNoThrow( const Entry& entry, PathComponentPiece name, - fusell::InodeNumber number) noexcept; + InodeNumber number) noexcept; folly::Future> startLoadingInode( const Entry& entry, PathComponentPiece name, - fusell::InodeNumber number); + InodeNumber number); /** * Materialize this directory in the overlay. @@ -837,7 +837,7 @@ class TreeInode : public InodeBase { * Helper function called inside InodeBase::setattr to perform TreeInode * specific operation during setattr. */ - folly::Future setInodeAttr( + folly::Future setInodeAttr( const fuse_setattr_in& attr) override; folly::Synchronized contents_; diff --git a/eden/fs/inodes/TreeInodeDirHandle.cpp b/eden/fs/inodes/TreeInodeDirHandle.cpp index 4801f18618..15f3969645 100644 --- a/eden/fs/inodes/TreeInodeDirHandle.cpp +++ b/eden/fs/inodes/TreeInodeDirHandle.cpp @@ -10,6 +10,7 @@ #include "TreeInodeDirHandle.h" #include "Overlay.h" +#include "eden/fs/fuse/DirList.h" #include "eden/fs/inodes/TreeInode.h" #include "eden/fs/model/Tree.h" #include "eden/fs/utils/DirType.h" @@ -19,9 +20,7 @@ namespace eden { TreeInodeDirHandle::TreeInodeDirHandle(TreeInodePtr inode) : inode_(inode) {} -folly::Future TreeInodeDirHandle::readdir( - fusell::DirList&& list, - off_t off) { +folly::Future TreeInodeDirHandle::readdir(DirList&& list, off_t off) { // We will be called mulitple times for a given directory read. The first // time through, the off parameter will be 0 to indicate that it is reading // from the start. On subsequent calls it will hold the off value from the @@ -53,12 +52,12 @@ folly::Future TreeInodeDirHandle::readdir( folly::StringPiece name; dtype_t type; /// If 0, look up/assign it based on name - fusell::InodeNumber ino; + InodeNumber ino; Entry( folly::StringPiece name, dtype_t type, - fusell::InodeNumber ino = fusell::InodeNumber{}) + InodeNumber ino = InodeNumber{}) : name(name), type(type), ino(ino) {} }; folly::fbvector entries; @@ -120,7 +119,7 @@ folly::Future TreeInodeDirHandle::readdir( return std::move(list); } -folly::Future TreeInodeDirHandle::setattr( +folly::Future TreeInodeDirHandle::setattr( const fuse_setattr_in& attr) { return inode_->setattr(attr); } @@ -130,11 +129,11 @@ folly::Future TreeInodeDirHandle::fsyncdir(bool /*datasync*/) { return folly::Unit{}; } -folly::Future TreeInodeDirHandle::getattr() { +folly::Future TreeInodeDirHandle::getattr() { return inode_->getattr(); } -fusell::InodeNumber TreeInodeDirHandle::getInodeNumber() { +InodeNumber TreeInodeDirHandle::getInodeNumber() { return inode_->getNodeId(); } } // namespace eden diff --git a/eden/fs/inodes/TreeInodeDirHandle.h b/eden/fs/inodes/TreeInodeDirHandle.h index 554777ae2a..281c2dbbe3 100644 --- a/eden/fs/inodes/TreeInodeDirHandle.h +++ b/eden/fs/inodes/TreeInodeDirHandle.h @@ -14,18 +14,16 @@ namespace facebook { namespace eden { -class TreeInodeDirHandle : public fusell::DirHandle { +class TreeInodeDirHandle : public DirHandle { public: explicit TreeInodeDirHandle(TreeInodePtr inode); - folly::Future readdir(fusell::DirList&& list, off_t off) - override; + folly::Future readdir(DirList&& list, off_t off) override; - folly::Future setattr( - const fuse_setattr_in& attr) override; + folly::Future setattr(const fuse_setattr_in& attr) override; folly::Future fsyncdir(bool datasync) override; - folly::Future getattr() override; - fusell::InodeNumber getInodeNumber() override; + folly::Future getattr() override; + InodeNumber getInodeNumber() override; private: TreeInodePtr inode_; diff --git a/eden/fs/inodes/test/FileInodeTest.cpp b/eden/fs/inodes/test/FileInodeTest.cpp index 0b419a89bc..47b1ad0b47 100644 --- a/eden/fs/inodes/test/FileInodeTest.cpp +++ b/eden/fs/inodes/test/FileInodeTest.cpp @@ -78,7 +78,7 @@ bool operator==(const timespec& ts, std::chrono::system_clock::time_point tp) { namespace { -fusell::Dispatcher::Attr getFileAttr(const FileInodePtr& inode) { +Dispatcher::Attr getFileAttr(const FileInodePtr& inode) { auto attrFuture = inode->getattr(); // We unfortunately can't use an ASSERT_* check here, since it tries // to return from the function normally, rather than throwing. @@ -91,7 +91,7 @@ fusell::Dispatcher::Attr getFileAttr(const FileInodePtr& inode) { return attrFuture.get(); } -fusell::Dispatcher::Attr setFileAttr( +Dispatcher::Attr setFileAttr( const FileInodePtr& inode, const fuse_setattr_in& desired) { auto attrFuture = inode->setattr(desired); @@ -105,9 +105,7 @@ fusell::Dispatcher::Attr setFileAttr( /** * Helper function used by BASIC_ATTR_CHECKS() */ -void basicAttrChecks( - const FileInodePtr& inode, - const fusell::Dispatcher::Attr& attr) { +void basicAttrChecks(const FileInodePtr& inode, const Dispatcher::Attr& attr) { EXPECT_EQ(inode->getNodeId().getRawValue(), attr.st.st_ino); EXPECT_EQ(1, attr.st.st_nlink); EXPECT_EQ(inode->getMount()->getUid(), attr.st.st_uid); @@ -135,7 +133,7 @@ void basicAttrChecks( /** * Helper function used by BASIC_ATTR_CHECKS() */ -fusell::Dispatcher::Attr basicAttrChecks(const FileInodePtr& inode) { +Dispatcher::Attr basicAttrChecks(const FileInodePtr& inode) { auto attr = getFileAttr(inode); basicAttrChecks(inode, attr); return attr; diff --git a/eden/fs/service/EdenServer.cpp b/eden/fs/service/EdenServer.cpp index d33720f99d..a621122e3d 100644 --- a/eden/fs/service/EdenServer.cpp +++ b/eden/fs/service/EdenServer.cpp @@ -85,7 +85,7 @@ DEFINE_int64( "Minimum age of the inodes to be unloaded"); using apache::thrift::ThriftServer; -using facebook::eden::fusell::FuseChannelData; +using facebook::eden::FuseChannelData; using folly::File; using folly::Future; using folly::makeFuture; @@ -558,13 +558,11 @@ folly::Future EdenServer::performTakeoverFuseStart( // SerializedFileHandleMap so that we can restore // the correct flags here. dispatcher - ->opendir( - fusell::InodeNumber::fromThrift(handleEntry.inodeNumber), 0) + ->opendir(InodeNumber::fromThrift(handleEntry.inodeNumber), 0) .then([dispatcher, number = handleEntry.handleId]( - std::shared_ptr handle) { + std::shared_ptr handle) { dispatcher->getFileHandles().recordHandle( - std::static_pointer_cast(handle), - number); + std::static_pointer_cast(handle), number); })); } else { futures.emplace_back( @@ -572,14 +570,11 @@ folly::Future EdenServer::performTakeoverFuseStart( // SerializedFileHandleMap so that we can restore // the correct flags here. dispatcher - ->open( - fusell::InodeNumber::fromThrift(handleEntry.inodeNumber), - O_RDWR) + ->open(InodeNumber::fromThrift(handleEntry.inodeNumber), O_RDWR) .then([dispatcher, number = handleEntry.handleId]( - std::shared_ptr handle) { + std::shared_ptr handle) { dispatcher->getFileHandles().recordHandle( - std::static_pointer_cast(handle), - number); + std::static_pointer_cast(handle), number); })); } } diff --git a/eden/fs/service/EdenServer.h b/eden/fs/service/EdenServer.h index 4b098e770b..df3d26f46a 100644 --- a/eden/fs/service/EdenServer.h +++ b/eden/fs/service/EdenServer.h @@ -194,7 +194,7 @@ class EdenServer : private TakeoverHandler { ServerState* getServerState() { return &serverState_; } - fusell::ThreadLocalEdenStats* getStats() { + ThreadLocalEdenStats* getStats() { return &serverState_.getStats(); } diff --git a/eden/fs/service/EdenServiceHandler.cpp b/eden/fs/service/EdenServiceHandler.cpp index 8af12b79c4..3e10838734 100644 --- a/eden/fs/service/EdenServiceHandler.cpp +++ b/eden/fs/service/EdenServiceHandler.cpp @@ -620,7 +620,7 @@ void EdenServiceHandler::debugGetInodePath( std::unique_ptr mountPoint, int64_t inodeNumber) { auto helper = INSTRUMENT_THRIFT_CALL(folly::LogLevel::DBG3); - auto inodeNum = static_cast(inodeNumber); + auto inodeNum = static_cast(inodeNumber); auto inodeMap = server_->getMount(*mountPoint)->getInodeMap(); folly::Optional relativePath = diff --git a/eden/fs/service/main.cpp b/eden/fs/service/main.cpp index f7844c261a..8e0e354568 100644 --- a/eden/fs/service/main.cpp +++ b/eden/fs/service/main.cpp @@ -36,7 +36,6 @@ DEFINE_string( // eden, and WARNING for all other categories. DEFINE_string(logging, ".=WARNING,eden=DBG2", "Logging configuration"); -using namespace facebook::eden::fusell; using namespace facebook::eden; int main(int argc, char** argv) { diff --git a/eden/fs/testharness/TestDispatcher.cpp b/eden/fs/testharness/TestDispatcher.cpp index a306132a4c..06cbeeeae3 100644 --- a/eden/fs/testharness/TestDispatcher.cpp +++ b/eden/fs/testharness/TestDispatcher.cpp @@ -21,9 +21,9 @@ namespace facebook { namespace eden { Future TestDispatcher::lookup( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name) { - auto requestID = fusell::RequestData::get().getReq().unique; + auto requestID = RequestData::get().getReq().unique; XLOG(DBG5) << "received lookup " << requestID << ": parent=" << parent << ", name=" << name; auto result = Future::makeEmpty(); diff --git a/eden/fs/testharness/TestDispatcher.h b/eden/fs/testharness/TestDispatcher.h index bae12b249c..d20ebe1ac5 100644 --- a/eden/fs/testharness/TestDispatcher.h +++ b/eden/fs/testharness/TestDispatcher.h @@ -28,16 +28,16 @@ namespace eden { * It allows the test code to generate responses to specific requests on * demand. */ -class TestDispatcher : public fusell::Dispatcher { +class TestDispatcher : public Dispatcher { public: /** * Data for a pending FUSE_LOOKUP request. */ struct PendingLookup { - PendingLookup(fusell::InodeNumber parent, PathComponentPiece name) + PendingLookup(InodeNumber parent, PathComponentPiece name) : parent(parent), name(name.copy()) {} - fusell::InodeNumber parent; + InodeNumber parent; PathComponent name; folly::Promise promise; }; @@ -45,7 +45,7 @@ class TestDispatcher : public fusell::Dispatcher { using Dispatcher::Dispatcher; folly::Future lookup( - fusell::InodeNumber parent, + InodeNumber parent, PathComponentPiece name) override; /**