]> git.baikalelectronics.ru Git - kernel.git/commit
ovl: fix failure to fsync lower dir
authorAmir Goldstein <amir73il@gmail.com>
Wed, 8 Nov 2017 07:39:46 +0000 (09:39 +0200)
committerMiklos Szeredi <mszeredi@redhat.com>
Fri, 19 Jan 2018 12:54:33 +0000 (13:54 +0100)
commitfcae29542a3bad785823c3ab35206c685bbc877a
treeabe932c45768b11bd1cdd59922f5e30de1f60590
parentdbcc68c7a835433fe04b9d713305c5028fd69d3b
ovl: fix failure to fsync lower dir

As a writable mount, it is not expected for overlayfs to return
EINVAL/EROFS for fsync, even if dir/file is not changed.

This commit fixes the case of fsync of directory, which is easier to
address, because overlayfs already implements fsync file operation for
directories.

The problem reported by Raphael is that new PostgreSQL 10.0 with a
database in overlayfs where lower layer in squashfs fails to start.
The failure is due to fsync error, when PostgreSQL does fsync on all
existing db directories on startup and a specific directory exists
lower layer with no changes.

Reported-by: Raphael Hertzog <raphael@ouaza.com>
Cc: <stable@vger.kernel.org> # v3.18
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Tested-by: Raphaƫl Hertzog <hertzog@debian.org>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/overlayfs/readdir.c