pNFS/filelayout: check layout segment range
authorOlga Kornievskaia <kolga@netapp.com>
Tue, 7 May 2024 19:59:33 +0000 (15:59 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 21 May 2024 12:34:15 +0000 (08:34 -0400)
Before doing the IO, check that we have the layout covering the range of
IO.

Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/filelayout/filelayout.c

index 85d2dc9bc212194a1ce98ed721b3d55c924e668d..bf3ba2e98f3336629bc892f07887ea61c11c99c3 100644 (file)
@@ -868,6 +868,7 @@ filelayout_pg_init_read(struct nfs_pageio_descriptor *pgio,
                        struct nfs_page *req)
 {
        pnfs_generic_pg_check_layout(pgio);
+       pnfs_generic_pg_check_range(pgio, req);
        if (!pgio->pg_lseg) {
                pgio->pg_lseg = fl_pnfs_update_layout(pgio->pg_inode,
                                                      nfs_req_openctx(req),
@@ -892,6 +893,7 @@ filelayout_pg_init_write(struct nfs_pageio_descriptor *pgio,
                         struct nfs_page *req)
 {
        pnfs_generic_pg_check_layout(pgio);
+       pnfs_generic_pg_check_range(pgio, req);
        if (!pgio->pg_lseg) {
                pgio->pg_lseg = fl_pnfs_update_layout(pgio->pg_inode,
                                                      nfs_req_openctx(req),