@@ -1631,7 +1631,7 @@ static noinline ssize_t __btrfs_buffered_write(struct file *file,
16311631static ssize_t __btrfs_direct_write (struct kiocb * iocb ,
16321632 const struct iovec * iov ,
16331633 unsigned long nr_segs , loff_t pos ,
1634- loff_t * ppos , size_t count , size_t ocount )
1634+ size_t count , size_t ocount )
16351635{
16361636 struct file * file = iocb -> ki_filp ;
16371637 struct iov_iter i ;
@@ -1640,7 +1640,7 @@ static ssize_t __btrfs_direct_write(struct kiocb *iocb,
16401640 loff_t endbyte ;
16411641 int err ;
16421642
1643- written = generic_file_direct_write (iocb , iov , & nr_segs , pos , ppos ,
1643+ written = generic_file_direct_write (iocb , iov , & nr_segs , pos , & iocb -> ki_pos ,
16441644 count , ocount );
16451645
16461646 if (written < 0 || written == count )
@@ -1659,7 +1659,7 @@ static ssize_t __btrfs_direct_write(struct kiocb *iocb,
16591659 if (err )
16601660 goto out ;
16611661 written += written_buffered ;
1662- * ppos = pos + written_buffered ;
1662+ iocb -> ki_pos = pos + written_buffered ;
16631663 invalidate_mapping_pages (file -> f_mapping , pos >> PAGE_CACHE_SHIFT ,
16641664 endbyte >> PAGE_CACHE_SHIFT );
16651665out :
@@ -1691,7 +1691,6 @@ static ssize_t btrfs_file_aio_write(struct kiocb *iocb,
16911691 struct file * file = iocb -> ki_filp ;
16921692 struct inode * inode = file_inode (file );
16931693 struct btrfs_root * root = BTRFS_I (inode )-> root ;
1694- loff_t * ppos = & iocb -> ki_pos ;
16951694 u64 start_pos ;
16961695 ssize_t num_written = 0 ;
16971696 ssize_t err = 0 ;
@@ -1759,15 +1758,15 @@ static ssize_t btrfs_file_aio_write(struct kiocb *iocb,
17591758
17601759 if (unlikely (file -> f_flags & O_DIRECT )) {
17611760 num_written = __btrfs_direct_write (iocb , iov , nr_segs ,
1762- pos , ppos , count , ocount );
1761+ pos , count , ocount );
17631762 } else {
17641763 struct iov_iter i ;
17651764
17661765 iov_iter_init (& i , iov , nr_segs , count , num_written );
17671766
17681767 num_written = __btrfs_buffered_write (file , & i , pos );
17691768 if (num_written > 0 )
1770- * ppos = pos + num_written ;
1769+ iocb -> ki_pos = pos + num_written ;
17711770 }
17721771
17731772 mutex_unlock (& inode -> i_mutex );
0 commit comments