gfs2: Don't ignore inode write errors during inode_go_sync
authorBob Peterson <rpeterso@redhat.com>
Fri, 8 May 2020 14:18:03 +0000 (09:18 -0500)
committerAndreas Gruenbacher <agruenba@redhat.com>
Tue, 2 Jun 2020 17:45:05 +0000 (19:45 +0200)
commitbbae10fac2dceb6c8585d385cc689f4e7ce81b1f
tree87555ff00651d4fa512397bdd3a76c81f9db0047
parent3700bec3323ebe90924156775be0124e93094f78
gfs2: Don't ignore inode write errors during inode_go_sync

Before for this patch, function inode_go_sync ignored io errors
during inode_go_sync, overwriting them with metadata write errors:

error = filemap_fdatawait(mapping);
mapping_set_error(mapping, error);
}
error = filemap_fdatawait(metamapping);
...
return error;

So any errors returned by the inode write would be forgotten if the
metadata write succeeded. This patch still does both writes, but
only sets error if it's still zero. That way, any errors will be
reported by to the caller, do_xmote, which will take appropriate
action and report the error.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/glops.c