diff options
author | Karol Wachowski <karol.wachowski@intel.com> | 2020-06-25 10:21:27 +0300 |
---|---|---|
committer | Kurzynski, Zbigniew <zbigniew.kurzynski@intel.com> | 2020-06-30 07:37:36 +0300 |
commit | 4b240dcec0e167d87ce11d0828a41316037c74d3 (patch) | |
tree | 8802076029f507123e7b085f542a36deb74f698d /src | |
parent | a2cc634c56b044aaf39ec7fb80d33440f7cf37bf (diff) | |
download | virtual-media-4b240dcec0e167d87ce11d0828a41316037c74d3.tar.xz |
Fix stopping usbgadget
Changed recursive removal (std::filesystem::remove_all) of all files in
/sys/kernel/config/usb_gadget/ to rmdir operation
(std::filesystem::remove).
configfs does not allow recursive file removal and returns operation not
permitted on such operations. It is required to execute rmmdir.
Tested: verified that VirtualMedia drives can be restarted properly
(stopped and started again)
Change-Id: Ib0c66723b451e29f28c9c90029365385a41dc558
Signed-off-by: Karol Wachowski <karol.wachowski@intel.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/system.hpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/system.hpp b/src/system.hpp index 500630f..a6dba84 100644 --- a/src/system.hpp +++ b/src/system.hpp @@ -568,13 +568,14 @@ struct UsbGadget // StateChange: unknown, notMonitored, inserted were handler // earlier. We'll get here only for removed, or cleanup + echoToFile(gadgetDir / "UDC", ""); const std::array<const char*, 6> dirs = { massStorageDir.c_str(), funcMassStorageDir.c_str(), configStringsDir.c_str(), configDir.c_str(), stringsDir.c_str(), gadgetDir.c_str()}; for (const char* dir : dirs) { - fs::remove_all(dir, ec); + fs::remove(dir, ec); if (ec) { success = false; |