• Linus Torvalds's avatar
    Merge tag 'afs-netfs-lib-20210426' of... · fafe1e39
    Linus Torvalds authored
    Merge tag 'afs-netfs-lib-20210426' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
    
    Pull AFS updates from David Howells:
     "Use the new netfs lib.
    
      Begin the process of overhauling the use of the fscache API by AFS and
      the introduction of support for features such as Transparent Huge
      Pages (THPs).
    
       - Add some support for THPs, including using core VM helper functions
         to find details of pages.
    
       - Use the ITER_XARRAY I/O iterator to mediate access to the pagecache
         as this handles THPs and doesn't require allocation of large bvec
         arrays.
    
       - Delegate address_space read/pre-write I/O methods for AFS to the
         netfs helper library. A method is provided to the library that
         allows it to issue a read against the server.
    
         This includes a change in use for PG_fscache (it now indicates a
         DIO write in progress from the marked page), so a number of waits
         need to be deployed for it.
    
       - Split the core AFS writeback function to make it easier to modify
         in future patches to handle writing to the cache. [This might
         feasibly make more sense moved out into my fscache-iter branch].
    
      I've tested these with "xfstests -g quick" against an AFS volume
      (xfstests needs patching to make it work). With this, AFS without a
      cache passes all expected xfstests; with a cache, there's an extra
      failure, but that's also there before these patches. Fixing that
      probably requires a greater overhaul (as can be found on my
      fscache-iter branch, but that's for a later time).
    
      Thanks should go to Marc Dionne and Jeff Altman of AuriStor for
      exercising the patches in their test farm also"
    
    Link: https://lore.kernel.org/lkml/3785063.1619482429@warthog.procyon.org.uk/
    
    * tag 'afs-netfs-lib-20210426' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
      afs: Use the netfs_write_begin() helper
      afs: Use new netfs lib read helper API
      afs: Use the fs operation ops to handle FetchData completion
      afs: Prepare for use of THPs
      afs: Extract writeback extension into its own function
      afs: Wait on PG_fscache before modifying/releasing a page
      afs: Use ITER_XARRAY for writing
      afs: Set up the iov_iter before calling afs_extract_data()
      afs: Log remote unmarshalling errors
      afs: Don't truncate iter during data fetch
      afs: Move key to afs_read struct
      afs: Print the operation debug_id when logging an unexpected data version
      afs: Pass page into dirty region helpers to provide THP size
      afs: Disable use of the fscache I/O routines
    fafe1e39
inode.c 23.4 KB