In order to get proper error codes from fsync, we must set an error in the mapping range when writeback fails. Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> --- fs/dax.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/dax.c b/fs/dax.c index de622d4282a6..b76b3ffc141a 100644 --- a/fs/dax.c +++ b/fs/dax.c @@ -892,8 +892,10 @@ int dax_writeback_mapping_range(struct address_space *mapping, ret = dax_writeback_one(bdev, mapping, indices[i], pvec.pages[i]); - if (ret < 0) + if (ret < 0) { + filemap_set_wb_error(mapping, ret); return ret; + } } } return 0; -- 2.9.3