On Fri, Feb 05, 2016 at 01:57:18PM -0800, Darrick J. Wong wrote:
> On Wed, Feb 03, 2016 at 07:40:15PM +0100, Christoph Hellwig wrote:
> > -   struct kiocb            *iocb,
> > -   loff_t                  offset,
> > -   ssize_t                 size,
> > -   void                    *private)
> > -{
> > -   struct inode            *inode = file_inode(iocb->ki_filp);
> > -   struct xfs_ioend        *ioend = private;
> > +           trace_xfs_end_io_direct_write_append(ip, offset, size);
> >  
> > -   if (size <= 0)
> > -           return 0;
> > -
> > -   trace_xfs_gbmap_direct_endio(XFS_I(inode), offset, size,
> > -                                ioend ? ioend->io_type : 0, NULL);
> > -
> > -   if (!ioend) {
> > -           ASSERT(offset + size <= i_size_read(inode));
> > -           return 0;
> > +           tp = xfs_trans_alloc(mp, XFS_TRANS_FSYNC_TS);
> > +           error = xfs_trans_reserve(tp, &M_RES(mp)->tr_fsyncts, 0, 0);
> > +           if (error) {
> > +                   xfs_trans_cancel(tp);
> > +                   return error;
> > +           }
> > +           error = xfs_setfilesize(ip, tp, offset, size);
> 
> Don't we need a xfs_trans_commit() here?

No, xfs_setfilesize() does that.

Cheers,

Dave.
-- 
Dave Chinner
da...@fromorbit.com

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

Reply via email to