Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445/* SPDX-License-Identifier: GPL-2.0 */#ifndef _MM_SWAP_OPS_H#define _MM_SWAP_OPS_H
#include <linux/swap.h> /* for SWAP_CLUSTER_MAX */
struct swap_iocb { union { struct kiocb iocb; struct bio bio; }; struct bio_vec bvecs[SWAP_CLUSTER_MAX]; int nr_bvecs; int len;};
struct swap_io_ctx { struct swap_iocb *sio; struct swap_info_struct *sis;};
/* * SWAP_OPS_F_REQUIRE_NOFS: * When set, all reclaim operations must operated as GFS_NOFS and not * just GFP_NOIO, as GFP_NOIO allocations could recourse into the * file system backing this swap file. */#define SWAP_OPS_F_REQUIRE_NOFS (1U << 0)
struct swap_ops { unsigned int flags;
bool (*can_merge)(struct folio *folio, struct folio *prev_folio, size_t prev_folio_size, int rw); void (*submit_write)(struct swap_io_ctx *ctx); void (*submit_read)(struct swap_io_ctx *ctx);};
void swap_fs_prepare_rw(struct swap_io_ctx *ctx, int rw, struct iov_iter *iter);bool swap_fs_can_merge(struct folio *folio, struct folio *prev_folio, size_t prev_folio_size, int rw);int swap_fs_activate(struct swap_info_struct *sis, const struct swap_ops *ops);
#endif /* _MM_SWAP_OPS_H */