• Linus Torvalds's avatar
    Merge tag 'netfs-fixes-20210621' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 9e736cf7
    Linus Torvalds authored
    Pull netfs fixes from David Howells:
     "This contains patches to fix netfs_write_begin() and afs_write_end()
      in the following ways:
    
      (1) In netfs_write_begin(), extract the decision about whether to skip
          a page out to its own helper and have that clear around the region
          to be written, but not clear that region. This requires the
          filesystem to patch it up afterwards if the hole doesn't get
          completely filled.
    
      (2) Use offset_in_thp() in (1) rather than manually calculating the
          offset into the page.
    
      (3) Due to (1), afs_write_end() now needs to handle short data write
          into the page by generic_perform_write(). I've adopted an
          analogous approach to ceph of just returning 0 in this case and
          letting the caller go round again.
    
      It also adds a note that (in the future) the len parameter may extend
      beyond the page allocated. This is because the page allocation is
      deferred to write_begin() and that gets to decide what size of THP to
      allocate."
    
    Jeff Layton points out:
     "The netfs fix in particular fixes a data corruption bug in cephfs"
    
    * tag 'netfs-fixes-20210621' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
      netfs: fix test for whether we can skip read when writing beyond EOF
      afs: Fix afs_write_end() to handle short writes
    9e736cf7
write.c 22.6 KB