On Wed, Jul 26, 2017 at 01:55:38PM -0400, Jeff Layton wrote:
> @@ -668,12 +668,14 @@ static int gfs2_fsync(struct file *file, loff_t start, 
> loff_t end,
>               if (ret)
>                       return ret;
>               if (gfs2_is_jdata(ip))
> -                     filemap_write_and_wait(mapping);
> +                     ret = file_write_and_wait(file);
> +             if (ret)
> +                     return ret;
>               gfs2_ail_flush(ip->i_gl, 1);
>       }

Do we want to skip flushing the AIL if there was an error (possibly
previously encountered)?  I'd think we'd want to flush the AIL then report
the error, like this:

                if (gfs2_is_jdata(ip))
-                       filemap_write_and_wait(mapping);
+                       ret = file_write_and_wait(file);
                gfs2_ail_flush(ip->i_gl, 1);
+               if (ret)
+                       return ret;
        }

Reply via email to