ovl: mount read-only if workdir can't be created
authorMiklos Szeredi <mszeredi@suse.cz>
Tue, 19 May 2015 12:30:12 +0000 (14:30 +0200)
committerMiklos Szeredi <mszeredi@suse.cz>
Tue, 19 May 2015 12:30:12 +0000 (14:30 +0200)
commitcc6f67bcafcb6bbbb2d1be1603dcd95125a52800
tree0d3cb24661ad0c375540791ec24c6fc80760f5b3
parentd377c5eb54dd05aeb3094b7740252d19ba7791f7
ovl: mount read-only if workdir can't be created

OpenWRT folks reported that overlayfs fails to mount if upper fs is full,
because workdir can't be created.  Wordir creation can fail for various
other reasons too.

There's no reason that the mount itself should fail, overlayfs can work
fine without a workdir, as long as the overlay isn't modified.

So mount it read-only and don't allow remounting read-write.

Add a couple of WARN_ON()s for the impossible case of workdir being used
despite being read-only.

Reported-by: Bastian Bittorf <bittorf@bluebottle.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Cc: <stable@vger.kernel.org> # v3.18+
fs/overlayfs/copy_up.c
fs/overlayfs/dir.c
fs/overlayfs/super.c