From: Andreas Gruenbacher Date: Thu, 13 May 2021 14:13:54 +0000 (+0200) Subject: gfs2: Add wrapper for iomap_file_buffered_write X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=9dd6fe5bba12e4978e07be5816027a4bf14caebf;p=users%2Fjedix%2Flinux-maple.git gfs2: Add wrapper for iomap_file_buffered_write Add a wrapper around iomap_file_buffered_write. We'll add code for when the operation needs to be retried here later. Signed-off-by: Andreas Gruenbacher --- diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c index 8a3a367f42b89..40581dc6bf717 100644 --- a/fs/gfs2/file.c +++ b/fs/gfs2/file.c @@ -874,6 +874,18 @@ out_uninit: return written ? written : ret; } +static ssize_t gfs2_file_buffered_write(struct kiocb *iocb, struct iov_iter *from) +{ + struct file *file = iocb->ki_filp; + struct inode *inode = file_inode(file); + ssize_t ret; + + current->backing_dev_info = inode_to_bdi(inode); + ret = iomap_file_buffered_write(iocb, from, &gfs2_iomap_ops); + current->backing_dev_info = NULL; + return ret; +} + /** * gfs2_file_write_iter - Perform a write to a file * @iocb: The io context @@ -925,9 +937,7 @@ static ssize_t gfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *from) goto out_unlock; iocb->ki_flags |= IOCB_DSYNC; - current->backing_dev_info = inode_to_bdi(inode); - buffered = iomap_file_buffered_write(iocb, from, &gfs2_iomap_ops); - current->backing_dev_info = NULL; + buffered = gfs2_file_buffered_write(iocb, from); if (unlikely(buffered <= 0)) { if (!ret) ret = buffered; @@ -949,9 +959,7 @@ static ssize_t gfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *from) if (!ret || ret2 > 0) ret += ret2; } else { - current->backing_dev_info = inode_to_bdi(inode); - ret = iomap_file_buffered_write(iocb, from, &gfs2_iomap_ops); - current->backing_dev_info = NULL; + ret = gfs2_file_buffered_write(iocb, from); if (likely(ret > 0)) { iocb->ki_pos += ret; ret = generic_write_sync(iocb, ret);