Updated variant forced-pushed into #work.rename; changes since v1: * rebased on top of #merged-selinux, to avoid a bisection hazard; selinuxfs used to abuse lock_rename() badly enough to trigger the checks in the last commit. Fixed in #merged-selinux (which consists of a commit already in selinux git tree), and rebase on top of that does not require any changes in the series. * (hopefully) fixed the markup in directory-locking.rst. I would really appreciate if somebody familiar with reST took a look at that. * fixed another part of directory-locking.rst, not touched in v1 - the proof that operations will not introduce loops if none had been present should've been updated when RENAME_EXCHANGE got introduced; it hadn't been. Rewritten. Same branch, same overall description, individual patches in followups.