summaryrefslogtreecommitdiff
path: root/fs/overlayfs/overlayfs.h
diff options
context:
space:
mode:
authorAmir Goldstein <amir73il@gmail.com>2023-08-16 12:42:18 +0300
committerAmir Goldstein <amir73il@gmail.com>2023-10-31 01:12:57 +0300
commitc63e56a4a6523fcb1358e1878607d77a40b534bb (patch)
tree2c8b9e0f4c23495df940722abfb6eaf1133ad482 /fs/overlayfs/overlayfs.h
parent162d06444070c12827d604a2cb6b6bd98d48cbb0 (diff)
downloadlinux-c63e56a4a6523fcb1358e1878607d77a40b534bb.tar.xz
ovl: do not open/llseek lower file with upper sb_writers held
overlayfs file open (ovl_maybe_lookup_lowerdata) and overlay file llseek take the ovl_inode_lock, without holding upper sb_writers. In case of nested lower overlay that uses same upper fs as this overlay, lockdep will warn about (possibly false positive) circular lock dependency when doing open/llseek of lower ovl file during copy up with our upper sb_writers held, because the locking ordering seems reverse to the locking order in ovl_copy_up_start(): - lower ovl_inode_lock - upper sb_writers Let the copy up "transaction" keeps an elevated mnt write count on upper mnt, but leaves taking upper sb_writers to lower level helpers only when they actually need it. This allows to avoid holding upper sb_writers during lower file open/llseek and prevents the lockdep warning. Minimizing the scope of upper sb_writers during copy up is also needed for fixing another possible deadlocks by a following patch. Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Diffstat (limited to 'fs/overlayfs/overlayfs.h')
0 files changed, 0 insertions, 0 deletions