• Amir Goldstein's avatar
    ovl: fix regression caused by exclusive upper/work dir protection · 85fdee1e
    Amir Goldstein authored
    Enforcing exclusive ownership on upper/work dirs caused a docker
    regression: https://github.com/moby/moby/issues/34672.
    
    Euan spotted the regression and pointed to the offending commit.
    Vivek has brought the regression to my attention and provided this
    reproducer:
    
    Terminal 1:
    
      mount -t overlay -o workdir=work,lowerdir=lower,upperdir=upper none
            merged/
    
    Terminal 2:
    
      unshare -m
    
    Terminal 1:
    
      umount merged
      mount -t overlay -o workdir=work,lowerdir=lower,upperdir=upper none
            merged/
      mount: /root/overlay-testing/merged: none already mounted or mount point
             busy
    
    To fix the regression, I replaced the error with an alarming warning.
    With index feature enabled, mount does fail, but logs a suggestion to
    override exclusive dir protection by disabling index.
    Note that index=off mount does take the inuse locks, so a concurrent
    index=off will issue the warning and a concurrent index=on mount will fail.
    
    Documentation was updated to reflect this change.
    
    Fixes: 2cac0c00 ("ovl: get exclusive ownership on upper/work dirs")
    Cc: <stable@vger.kernel.org> # v4.13
    Reported-by: default avatarEuan Kemp <euank@euank.com>
    Reported-by: default avatarVivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    85fdee1e
ovl_entry.h 1.93 KB