diff options
Diffstat (limited to 'libstdc++-v3/src/filesystem/ops.cc')
-rw-r--r-- | libstdc++-v3/src/filesystem/ops.cc | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/libstdc++-v3/src/filesystem/ops.cc b/libstdc++-v3/src/filesystem/ops.cc index 8de3511346e..397a8d7ffe7 100644 --- a/libstdc++-v3/src/filesystem/ops.cc +++ b/libstdc++-v3/src/filesystem/ops.cc @@ -720,10 +720,8 @@ namespace if (::mkdir(p.c_str(), mode)) { const int err = errno; - if (err != EEXIST || !is_directory(p)) + if (err != EEXIST || !is_directory(p, ec)) ec.assign(err, std::generic_category()); - else - ec.clear(); } else { @@ -1391,10 +1389,11 @@ fs::space(const path& p, error_code& ec) noexcept ec.assign(errno, std::generic_category()); else { + uintmax_t fragment_size = f.f_frsize; info = space_info{ - f.f_blocks * f.f_frsize, - f.f_bfree * f.f_frsize, - f.f_bavail * f.f_frsize + f.f_blocks * fragment_size, + f.f_bfree * fragment_size, + f.f_bavail * fragment_size }; ec.clear(); } |