commit | 127cff38809ea6c3a37ed3ce7f428cafdc38e2e1 | [log] [tgz] |
---|---|---|
author | Rob Landley <rob@landley.net> | Thu Jul 08 04:30:00 2021 -0500 |
committer | Rob Landley <rob@landley.net> | Thu Jul 08 04:30:00 2021 -0500 |
tree | 7de5bc21a2e7cee3e9d76c23ec1cf5ba409cb0b3 | |
parent | 3fbacb1f5c5eab1727d0bed0bd50d659af854ec7 [diff] |
Work around a posix violation in the croups filesystem that LTP requires. Posix says you removing a non-empty directory "shall fail" in both: https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/functions/unlinkat.html https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/functions/rmdir.html So toybox mv went ahead and unlinked the directory even if the contents hadn't all been deleted because posix guarantees it to be harmless. But cgroups (https://lwn.net/Articles/679786/) deletes the non-empty directory, thus the Linux Test Project's cgroups_fj_function test6 was failing with toybox mv because they depend on not triggering the posix violating behavior. Work around it by having mv DIRTREE_SAVE failing nodes and then check for a non-empty ->child in the COMEAGAIN as a signal not to unlink the dir. While I'm there do some code cleanup, add a cp -i test...