aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/src/filesystem/ops.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/src/filesystem/ops.cc')
-rw-r--r--libstdc++-v3/src/filesystem/ops.cc11
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();
}