mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-06 14:05:39 +00:00
netfs: Allow the netfs to make the io (sub)request alloc larger
Allow the network filesystem to specify extra space to be allocated on the end of the io (sub)request. This allows cifs, for example, to use this space rather than allocating its own cifs_readdata struct. Signed-off-by: David Howells <dhowells@redhat.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> cc: linux-cachefs@redhat.com cc: linux-fsdevel@vger.kernel.org cc: linux-mm@kvack.org
This commit is contained in:
parent
87b57a0489
commit
cc3cb0a18d
@ -22,7 +22,8 @@ struct netfs_io_request *netfs_alloc_request(struct address_space *mapping,
|
||||
struct netfs_io_request *rreq;
|
||||
int ret;
|
||||
|
||||
rreq = kzalloc(sizeof(struct netfs_io_request), GFP_KERNEL);
|
||||
rreq = kzalloc(ctx->ops->io_request_size ?: sizeof(struct netfs_io_request),
|
||||
GFP_KERNEL);
|
||||
if (!rreq)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
@ -114,7 +115,9 @@ struct netfs_io_subrequest *netfs_alloc_subrequest(struct netfs_io_request *rreq
|
||||
{
|
||||
struct netfs_io_subrequest *subreq;
|
||||
|
||||
subreq = kzalloc(sizeof(struct netfs_io_subrequest), GFP_KERNEL);
|
||||
subreq = kzalloc(rreq->netfs_ops->io_subrequest_size ?:
|
||||
sizeof(struct netfs_io_subrequest),
|
||||
GFP_KERNEL);
|
||||
if (subreq) {
|
||||
INIT_LIST_HEAD(&subreq->rreq_link);
|
||||
refcount_set(&subreq->ref, 2);
|
||||
|
@ -210,6 +210,8 @@ struct netfs_io_request {
|
||||
* Operations the network filesystem can/must provide to the helpers.
|
||||
*/
|
||||
struct netfs_request_ops {
|
||||
unsigned int io_request_size; /* Alloc size for netfs_io_request struct */
|
||||
unsigned int io_subrequest_size; /* Alloc size for netfs_io_subrequest struct */
|
||||
int (*init_request)(struct netfs_io_request *rreq, struct file *file);
|
||||
void (*free_request)(struct netfs_io_request *rreq);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user