From aa8a69812979bda0de886c3cacd99f5d19117e09 Mon Sep 17 00:00:00 2001 From: Lucjan Bryndza Date: Wed, 6 Oct 2021 11:30:46 +0200 Subject: [PATCH] [EGD-7757] Improve stdlib iobuf MTP for ext4 fs Improve stdlib file transfer performance for ext4 on the MTP file transfer Signed-off-by: Lucjan Bryndza --- .gitmodules | 2 +- .../include/purefs/fs/drivers/directory_handle_ext4.hpp | 2 +- module-vfs/drivers/src/purefs/fs/filesystem_ext4.cpp | 9 ++++----- third-party/usb_stack | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.gitmodules b/.gitmodules index ab8d44dd50dc1a4105d1935d4e76bf07b0a4b36f..7c9c1ae67352b1a436d8f6255b00034161ff1a1b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -95,7 +95,7 @@ [submodule "klib"] path = third-party/klib/src url = https://github.com/attractivechaos/klib.git -[submodule "third-party/lwext4/lwext4"] +[submodule "lwext4"] path = third-party/lwext4/lwext4 url = ../lwext4.git branch = mudita diff --git a/module-vfs/drivers/include/purefs/fs/drivers/directory_handle_ext4.hpp b/module-vfs/drivers/include/purefs/fs/drivers/directory_handle_ext4.hpp index 2136c23c672305180cd93131271ed26d35c53bfd..d5e9f2ef451f3d0779afd93c8596f67802cf8a61 100644 --- a/module-vfs/drivers/include/purefs/fs/drivers/directory_handle_ext4.hpp +++ b/module-vfs/drivers/include/purefs/fs/drivers/directory_handle_ext4.hpp @@ -23,4 +23,4 @@ namespace purefs::fs::drivers private: ext4_dir m_dir{}; }; -} // namespace purefs::fs::drivers \ No newline at end of file +} // namespace purefs::fs::drivers diff --git a/module-vfs/drivers/src/purefs/fs/filesystem_ext4.cpp b/module-vfs/drivers/src/purefs/fs/filesystem_ext4.cpp index cfe83bca5bdb06216d865991b1f30a33cf168cca..a8b852602a332997e989fa080db68ad6b231da66 100644 --- a/module-vfs/drivers/src/purefs/fs/filesystem_ext4.cpp +++ b/module-vfs/drivers/src/purefs/fs/filesystem_ext4.cpp @@ -26,8 +26,7 @@ namespace purefs::fs::drivers { namespace { - template - auto invoke_efs(filesystem_ext4::fsfile zfil, T efs_fun, Args &&... args) + template auto invoke_efs(filesystem_ext4::fsfile zfil, T efs_fun, Args &&...args) { auto vfile = std::dynamic_pointer_cast(zfil); if (!vfile) { @@ -58,7 +57,7 @@ namespace purefs::fs::drivers return -err; } template - auto invoke_efs(filesystem_ext4::fsmount fmnt, T efs_fun, std::string_view path, Args &&... args) + auto invoke_efs(filesystem_ext4::fsmount fmnt, T efs_fun, std::string_view path, Args &&...args) { auto mntp = std::static_pointer_cast(fmnt); if (!mntp) { @@ -70,7 +69,7 @@ namespace purefs::fs::drivers auto err = efs_fun(native_path.c_str(), std::forward(args)...); return -err; } - template auto invoke_efs(filesystem_ext4::fsdir zdir, T lfs_fun, Args &&... args) + template auto invoke_efs(filesystem_ext4::fsdir zdir, T lfs_fun, Args &&...args) { auto vdir = std::dynamic_pointer_cast(zdir); if (!vdir) { @@ -412,7 +411,7 @@ namespace purefs::fs::drivers if (fspath.empty()) { fspath = vmnt->mount_path(); } - const auto dirp = std::make_shared(mnt, 0); + const auto dirp = std::make_shared(mnt, 0); ext4_locker _lck(vmnt); const auto lret = ext4_dir_open(dirp->dirp(), fspath.c_str()); dirp->error(-lret); diff --git a/third-party/usb_stack b/third-party/usb_stack index 3811843e165ce1a3d86edd59d0def07f7c085108..c13d077cdf1750a9cf83985804a397d25aa4c0bf 160000 --- a/third-party/usb_stack +++ b/third-party/usb_stack @@ -1 +1 @@ -Subproject commit 3811843e165ce1a3d86edd59d0def07f7c085108 +Subproject commit c13d077cdf1750a9cf83985804a397d25aa4c0bf