diff options
author | Nicolas Lacasse <nlacasse@google.com> | 2018-08-29 11:45:23 -0700 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2018-08-29 11:47:01 -0700 |
commit | 956fe64ad6d628c70fe8d0ae7fd4001e8b648a3b (patch) | |
tree | 2df4d4e2b0d70686f38fe0a915b2cc146ff8be3f /pkg/control | |
parent | 18932476167ecf16b7d3e85ae6addaaba193ceed (diff) |
fs: Fix renameMu lock recursion.
dirent.walk() takes renameMu, but is often called with renameMu already held,
which can lead to a deadlock.
Fix this by requiring renameMu to be held for reading when dirent.walk() is
called. This causes walks and existence checks to block while a rename
operation takes place, but that is what we were already trying to enforce by
taking renameMu in walk() anyways.
PiperOrigin-RevId: 210760780
Change-Id: Id61018e6e4adbeac53b9c1b3aa24ab77f75d8a54
Diffstat (limited to 'pkg/control')
0 files changed, 0 insertions, 0 deletions