• David Howells's avatar
    cifs: Implement netfslib hooks · 69c3c023
    David Howells authored
    Provide implementation of the netfslib hooks that will be used by netfslib
    to ask cifs to set up and perform operations.  Of particular note are
    
     (*) cifs_clamp_length() - This is used to negotiate the size of the next
         subrequest in a read request, taking into account the credit available
         and the rsize.  The credits are attached to the subrequest.
    
     (*) cifs_req_issue_read() - This is used to issue a subrequest that has
         been set up and clamped.
    
     (*) cifs_prepare_write() - This prepares to fill a subrequest by picking a
         channel, reopening the file and requesting credits so that we can set
         the maximum size of the subrequest and also sets the maximum number of
         segments if we're doing RDMA.
    
     (*) cifs_issue_write() - This releases any unneeded credits and issues an
         asynchronous data write for the contiguous slice of file covered by
         the subrequest.  This should possibly be folded in to all
         ->async_writev() ops and that called directly.
    
     (*) cifs_begin_writeback() - This gets the cached writable handle through
         which we do writeback (this does not affect writethrough, unbuffered
         or direct writes).
    
    At this point, cifs is not wired up to actually *use* netfslib; that will
    be done in a subsequent patch.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    cc: Steve French <sfrench@samba.org>
    cc: Shyam Prasad N <nspmangalore@gmail.com>
    cc: Rohith Surabattula <rohiths.msft@gmail.com>
    cc: Jeff Layton <jlayton@kernel.org>
    cc: linux-cifs@vger.kernel.org
    cc: netfs@lists.linux.dev
    cc: linux-fsdevel@vger.kernel.org
    cc: linux-mm@kvack.org
    69c3c023
cifsfs.c 55.8 KB