Re: [PATCH v3 06/20] dax: set errors in mapping when writeback fails

From: Ross Zwisler
Date: Mon Apr 24 2017 - 15:16:20 EST


On Mon, Apr 24, 2017 at 09:22:45AM -0400, Jeff Layton wrote:
> 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>

Works fine in some error injection testing.

Tested-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>

> ---
> fs/dax.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/fs/dax.c b/fs/dax.c
> index 85abd741253d..9b6b04030c3f 100644
> --- a/fs/dax.c
> +++ b/fs/dax.c
> @@ -901,8 +901,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) {
> + mapping_set_error(mapping, ret);
> return ret;
> + }
> }
> }
> return 0;
> --
> 2.9.3
>