From: jlayton@kernel.org Subject: [PATCH v8 15/18] fs: convert __generic_file_fsync to use errseq_t based reporting Date: Thu, 29 Jun 2017 09:19:51 -0400 Message-ID: <20170629131954.28733-16-jlayton@kernel.org> References: <20170629131954.28733-1-jlayton@kernel.org> Cc: Carlos Maiolino , Eryu Guan , David Howells , Christoph Hellwig , Liu Bo , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-block@vger.kernel.org To: Andrew Morton , Al Viro , Jan Kara , tytso@mit.edu, axboe@kernel.dk, mawilcox@microsoft.com, ross.zwisler@linux.intel.com, corbet@lwn.net, Chris Mason , Josef Bacik , David Sterba , "Darrick J . Wong" Return-path: In-Reply-To: <20170629131954.28733-1-jlayton@kernel.org> Sender: owner-linux-mm@kvack.org List-Id: linux-ext4.vger.kernel.org From: Jeff Layton Signed-off-by: Jeff Layton --- fs/libfs.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fs/libfs.c b/fs/libfs.c index 1dec90819366..3aabe553fc45 100644 --- a/fs/libfs.c +++ b/fs/libfs.c @@ -974,7 +974,7 @@ int __generic_file_fsync(struct file *file, loff_t start, loff_t end, int err; int ret; - err = filemap_write_and_wait_range(inode->i_mapping, start, end); + err = file_write_and_wait_range(file, start, end); if (err) return err; @@ -991,8 +991,11 @@ int __generic_file_fsync(struct file *file, loff_t start, loff_t end, out: inode_unlock(inode); - err = filemap_check_errors(inode->i_mapping); - return ret ? ret : err; + /* check and advance again to catch errors after syncing out buffers */ + err = file_check_and_advance_wb_err(file); + if (ret == 0) + ret = err; + return ret; } EXPORT_SYMBOL(__generic_file_fsync); -- 2.13.0 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org