diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2020-07-06 16:40:10 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2020-07-06 16:40:10 +0200 |
commit | 54712aaf8a4d9d6a42232fe9b360fc72f35ed02d (patch) | |
tree | 02f1ad7cb8628ed5877ed411a7ed67b3c0917da9 /src/libstore/build.cc | |
parent | 6ff9aa8df7ce8266147f74c65e2cc529a1e72ce0 (diff) | |
parent | 14227aeb327798a1446ddde59fc561c3d2e6b7a8 (diff) |
Merge remote-tracking branch 'origin/master' into flakes
Diffstat (limited to 'src/libstore/build.cc')
-rw-r--r-- | src/libstore/build.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc index 0c25897f8..347fe1b99 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -1950,8 +1950,11 @@ void linkOrCopy(const Path & from, const Path & to) /* Hard-linking fails if we exceed the maximum link count on a file (e.g. 32000 of ext3), which is quite possible after a 'nix-store --optimise'. FIXME: actually, why don't we just - bind-mount in this case? */ - if (errno != EMLINK) + bind-mount in this case? + + It can also fail with EPERM in BeegFS v7 and earlier versions + which don't allow hard-links to other directories */ + if (errno != EMLINK && errno != EPERM) throw SysError("linking '%s' to '%s'", to, from); copyPath(from, to); } @@ -2750,8 +2753,8 @@ struct RestrictedStore : public LocalFSStore void queryReferrers(const StorePath & path, StorePathSet & referrers) override { } - StorePathSet queryDerivationOutputs(const StorePath & path) override - { throw Error("queryDerivationOutputs"); } + OutputPathMap queryDerivationOutputMap(const StorePath & path) override + { throw Error("queryDerivationOutputMap"); } std::optional<StorePath> queryPathFromHashPart(const std::string & hashPart) override { throw Error("queryPathFromHashPart"); } |