Loading fs/nfs/nfs4filelayout.c +3 −0 Original line number Diff line number Diff line Loading @@ -661,6 +661,9 @@ filelayout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, u64 p_stripe, r_stripe; u32 stripe_unit; if (!pnfs_generic_pg_test(pgio, prev, req)) return 0; if (!pgio->pg_lseg) return 1; p_stripe = (u64)prev->wb_index << PAGE_CACHE_SHIFT; Loading fs/nfs/objlayout/objio_osd.c +1 −13 Original line number Diff line number Diff line Loading @@ -988,18 +988,6 @@ ssize_t objio_write_pagelist(struct objlayout_io_state *ol_state, bool stable) return _write_exec(ios); } /* * objlayout_pg_test(). Called by nfs_can_coalesce_requests() * * return true iff coalesce page */ bool objlayout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, struct nfs_page *req) { return true; } static struct pnfs_layoutdriver_type objlayout_type = { .id = LAYOUT_OSD2_OBJECTS, .name = "LAYOUT_OSD2_OBJECTS", Loading @@ -1013,7 +1001,7 @@ static struct pnfs_layoutdriver_type objlayout_type = { .read_pagelist = objlayout_read_pagelist, .write_pagelist = objlayout_write_pagelist, .pg_test = objlayout_pg_test, .pg_test = pnfs_generic_pg_test, .free_deviceid_node = objio_free_deviceid_node, Loading fs/nfs/pnfs.c +9 −4 Original line number Diff line number Diff line Loading @@ -1067,12 +1067,17 @@ pnfs_generic_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, pgio->pg_count, access_type, gfp_flags); } else if (pgio->pg_lseg && return true; } if (pgio->pg_lseg && req_offset(req) > end_offset(pgio->pg_lseg->pls_range.offset, pgio->pg_lseg->pls_range.length)) return false; return NFS_SERVER(pgio->pg_inode)->pnfs_curr_ld->pg_test(pgio, prev, req); return true; } EXPORT_SYMBOL_GPL(pnfs_generic_pg_test); /* * Called by non rpc-based layout drivers Loading fs/nfs/pnfs.h +4 −2 Original line number Diff line number Diff line Loading @@ -295,8 +295,10 @@ static inline int pnfs_return_layout(struct inode *ino) static inline void pnfs_pageio_init(struct nfs_pageio_descriptor *pgio, struct inode *inode) { if (NFS_SERVER(inode)->pnfs_curr_ld) pgio->pg_test = pnfs_generic_pg_test; struct pnfs_layoutdriver_type *ld = NFS_SERVER(inode)->pnfs_curr_ld; if (ld) pgio->pg_test = ld->pg_test; } #else /* CONFIG_NFS_V4_1 */ Loading Loading
fs/nfs/nfs4filelayout.c +3 −0 Original line number Diff line number Diff line Loading @@ -661,6 +661,9 @@ filelayout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, u64 p_stripe, r_stripe; u32 stripe_unit; if (!pnfs_generic_pg_test(pgio, prev, req)) return 0; if (!pgio->pg_lseg) return 1; p_stripe = (u64)prev->wb_index << PAGE_CACHE_SHIFT; Loading
fs/nfs/objlayout/objio_osd.c +1 −13 Original line number Diff line number Diff line Loading @@ -988,18 +988,6 @@ ssize_t objio_write_pagelist(struct objlayout_io_state *ol_state, bool stable) return _write_exec(ios); } /* * objlayout_pg_test(). Called by nfs_can_coalesce_requests() * * return true iff coalesce page */ bool objlayout_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, struct nfs_page *req) { return true; } static struct pnfs_layoutdriver_type objlayout_type = { .id = LAYOUT_OSD2_OBJECTS, .name = "LAYOUT_OSD2_OBJECTS", Loading @@ -1013,7 +1001,7 @@ static struct pnfs_layoutdriver_type objlayout_type = { .read_pagelist = objlayout_read_pagelist, .write_pagelist = objlayout_write_pagelist, .pg_test = objlayout_pg_test, .pg_test = pnfs_generic_pg_test, .free_deviceid_node = objio_free_deviceid_node, Loading
fs/nfs/pnfs.c +9 −4 Original line number Diff line number Diff line Loading @@ -1067,12 +1067,17 @@ pnfs_generic_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, pgio->pg_count, access_type, gfp_flags); } else if (pgio->pg_lseg && return true; } if (pgio->pg_lseg && req_offset(req) > end_offset(pgio->pg_lseg->pls_range.offset, pgio->pg_lseg->pls_range.length)) return false; return NFS_SERVER(pgio->pg_inode)->pnfs_curr_ld->pg_test(pgio, prev, req); return true; } EXPORT_SYMBOL_GPL(pnfs_generic_pg_test); /* * Called by non rpc-based layout drivers Loading
fs/nfs/pnfs.h +4 −2 Original line number Diff line number Diff line Loading @@ -295,8 +295,10 @@ static inline int pnfs_return_layout(struct inode *ino) static inline void pnfs_pageio_init(struct nfs_pageio_descriptor *pgio, struct inode *inode) { if (NFS_SERVER(inode)->pnfs_curr_ld) pgio->pg_test = pnfs_generic_pg_test; struct pnfs_layoutdriver_type *ld = NFS_SERVER(inode)->pnfs_curr_ld; if (ld) pgio->pg_test = ld->pg_test; } #else /* CONFIG_NFS_V4_1 */ Loading