diff --git a/patches.kabi/pNFS-Fix-the-pnfs-block-driver-s-calculation-of-layo.patch b/patches.kabi/pNFS-Fix-the-pnfs-block-driver-s-calculation-of-layo.patch new file mode 100644 index 0000000..83b9415 --- /dev/null +++ b/patches.kabi/pNFS-Fix-the-pnfs-block-driver-s-calculation-of-layo.patch @@ -0,0 +1,72 @@ +From: NeilBrown +Subject: kabi fix for pNFS: Fix the pnfs block driver's calculation of layoutget size +Patch-mainline: Never, kabi +References: git-fixes + +Rather than changing the signature of an exported function, create a new +function with the new functionality and use that. + +--- + fs/nfs/blocklayout/blocklayout.c | 2 +- + fs/nfs/direct.c | 10 ++++++++-- + fs/nfs/internal.h | 3 ++- + fs/nfs/pnfs.c | 2 +- + 4 files changed, 12 insertions(+), 5 deletions(-) + +--- a/fs/nfs/blocklayout/blocklayout.c ++++ b/fs/nfs/blocklayout/blocklayout.c +@@ -849,7 +849,7 @@ bl_pg_init_write(struct nfs_pageio_descr + if (pgio->pg_dreq == NULL) + wb_size = pnfs_num_cont_bytes(pgio->pg_inode, req->wb_index); + else +- wb_size = nfs_dreq_bytes_left(pgio->pg_dreq, req_offset(req)); ++ wb_size = nfs_dreq_bytes_left_offset(pgio->pg_dreq, req_offset(req)); + + pnfs_generic_pg_init_write(pgio, req, wb_size); + } +--- a/fs/nfs/direct.c ++++ b/fs/nfs/direct.c +@@ -267,12 +267,18 @@ static void nfs_direct_req_release(struc + kref_put(&dreq->kref, nfs_direct_req_free); + } + +-ssize_t nfs_dreq_bytes_left(struct nfs_direct_req *dreq, loff_t offset) ++ssize_t nfs_dreq_bytes_left(struct nfs_direct_req *dreq) ++{ ++ return dreq->bytes_left; ++} ++EXPORT_SYMBOL_GPL(nfs_dreq_bytes_left); ++ ++ssize_t nfs_dreq_bytes_left_offset(struct nfs_direct_req *dreq, loff_t offset) + { + loff_t start = offset - dreq->io_start; + return dreq->max_count - start; + } +-EXPORT_SYMBOL_GPL(nfs_dreq_bytes_left); ++EXPORT_SYMBOL_GPL(nfs_dreq_bytes_left_offset); + + /* + * Collects and returns the final error value/byte-count. +--- a/fs/nfs/internal.h ++++ b/fs/nfs/internal.h +@@ -577,7 +577,8 @@ extern int nfs_sillyrename(struct inode + /* direct.c */ + void nfs_init_cinfo_from_dreq(struct nfs_commit_info *cinfo, + struct nfs_direct_req *dreq); +-extern ssize_t nfs_dreq_bytes_left(struct nfs_direct_req *dreq, loff_t offset); ++extern ssize_t nfs_dreq_bytes_left(struct nfs_direct_req *dreq); ++extern ssize_t nfs_dreq_bytes_left_offset(struct nfs_direct_req *dreq, loff_t offset); + + /* nfs4proc.c */ + extern struct nfs_client *nfs4_init_client(struct nfs_client *clp, +--- a/fs/nfs/pnfs.c ++++ b/fs/nfs/pnfs.c +@@ -2173,7 +2173,7 @@ pnfs_generic_pg_init_read(struct nfs_pag + if (pgio->pg_dreq == NULL) + rd_size = i_size_read(pgio->pg_inode) - req_offset(req); + else +- rd_size = nfs_dreq_bytes_left(pgio->pg_dreq, ++ rd_size = nfs_dreq_bytes_left_offset(pgio->pg_dreq, + req_offset(req)); + + pgio->pg_lseg = pnfs_update_layout(pgio->pg_inode, diff --git a/series.conf b/series.conf index 2dae868..5579939 100644 --- a/series.conf +++ b/series.conf @@ -66113,6 +66113,7 @@ patches.kabi/preserve-KABI-for-struct-sfp_socket_ops.patch patches.kabi/kabi-restore-return-type-of-dst_ops-gc-callback.patch patches.kabi/team-Hide-new-member-header-ops.patch + patches.kabi/pNFS-Fix-the-pnfs-block-driver-s-calculation-of-layo.patch ######################################################## # You'd better have a good reason for adding a patch