git: 93be89569021 - stable/13 - nfsclient: eliminate ncl_writebp()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 12 Jan 2024 12:02:49 UTC
The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=93be89569021e8507b2d326902157ccf7cac2141 commit 93be89569021e8507b2d326902157ccf7cac2141 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-12-30 18:46:31 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2024-01-11 16:47:52 +0000 nfsclient: eliminate ncl_writebp() (cherry picked from commit 656d2e83d9eef204c132f879d55782affede2ca9) --- sys/fs/nfsclient/nfs.h | 1 - sys/fs/nfsclient/nfs_clbio.c | 2 +- sys/fs/nfsclient/nfs_clnode.c | 2 -- sys/fs/nfsclient/nfs_clport.c | 2 -- sys/fs/nfsclient/nfs_clvnops.c | 70 +----------------------------------------- 5 files changed, 2 insertions(+), 75 deletions(-) diff --git a/sys/fs/nfsclient/nfs.h b/sys/fs/nfsclient/nfs.h index b43194a3abeb..aa755a6b5f4d 100644 --- a/sys/fs/nfsclient/nfs.h +++ b/sys/fs/nfsclient/nfs.h @@ -111,7 +111,6 @@ int ncl_readdirrpc(struct vnode *, struct uio *, struct ucred *, struct thread *); int ncl_readdirplusrpc(struct vnode *, struct uio *, struct ucred *, struct thread *); -int ncl_writebp(struct buf *, int, struct thread *); int ncl_commit(struct vnode *, u_quad_t, int, struct ucred *, struct thread *); void ncl_clearcommit(struct mount *); int ncl_fsinfo(struct nfsmount *, struct vnode *, struct ucred *, diff --git a/sys/fs/nfsclient/nfs_clbio.c b/sys/fs/nfsclient/nfs_clbio.c index ae529d549d76..63e97f405198 100644 --- a/sys/fs/nfsclient/nfs_clbio.c +++ b/sys/fs/nfsclient/nfs_clbio.c @@ -1315,7 +1315,7 @@ again: } } else if ((n + on) == biosize || (ioflag & IO_ASYNC) != 0) { bp->b_flags |= B_ASYNC; - (void) ncl_writebp(bp, 0, NULL); + (void) bwrite(bp); } else { bdwrite(bp); } diff --git a/sys/fs/nfsclient/nfs_clnode.c b/sys/fs/nfsclient/nfs_clnode.c index 98fcdf7e0048..a7ace3cdadc9 100644 --- a/sys/fs/nfsclient/nfs_clnode.c +++ b/sys/fs/nfsclient/nfs_clnode.c @@ -59,7 +59,6 @@ #include <nfs/nfs_lock.h> extern struct vop_vector newnfs_vnodeops; -extern struct buf_ops buf_ops_newnfs; MALLOC_DECLARE(M_NEWNFSREQ); uma_zone_t newnfsnode_zone; @@ -131,7 +130,6 @@ ncl_nget(struct mount *mntp, u_int8_t *fhp, int fhsize, struct nfsnode **npp, } vp = nvp; KASSERT(vp->v_bufobj.bo_bsize != 0, ("ncl_nget: bo_bsize == 0")); - vp->v_bufobj.bo_ops = &buf_ops_newnfs; vp->v_data = np; np->n_vnode = vp; /* diff --git a/sys/fs/nfsclient/nfs_clport.c b/sys/fs/nfsclient/nfs_clport.c index 893ab76aec0c..ec97fb360035 100644 --- a/sys/fs/nfsclient/nfs_clport.c +++ b/sys/fs/nfsclient/nfs_clport.c @@ -77,7 +77,6 @@ extern u_int32_t newnfs_true, newnfs_false, newnfs_xdrneg1; extern struct vop_vector newnfs_vnodeops; extern struct vop_vector newnfs_fifoops; extern uma_zone_t newnfsnode_zone; -extern struct buf_ops buf_ops_newnfs; extern uma_zone_t ncl_pbuf_zone; extern short nfsv4_cbport; extern int nfscl_enablecallb; @@ -235,7 +234,6 @@ nfscl_nget(struct mount *mntp, struct vnode *dvp, struct nfsfh *nfhp, } vp = nvp; KASSERT(vp->v_bufobj.bo_bsize != 0, ("nfscl_nget: bo_bsize == 0")); - vp->v_bufobj.bo_ops = &buf_ops_newnfs; vp->v_data = np; np->n_vnode = vp; /* diff --git a/sys/fs/nfsclient/nfs_clvnops.c b/sys/fs/nfsclient/nfs_clvnops.c index 4ee167cfb5cd..05948b4d6ef6 100644 --- a/sys/fs/nfsclient/nfs_clvnops.c +++ b/sys/fs/nfsclient/nfs_clvnops.c @@ -2949,7 +2949,7 @@ ncl_flush(struct vnode *vp, int waitfor, struct thread *td, * A b_flags == (B_DELWRI | B_NEEDCOMMIT) block has been written to the * server, but has not been committed to stable storage on the server * yet. On the first pass, the byte range is worked out and the commit - * rpc is done. On the second pass, ncl_writebp() is called to do the + * rpc is done. On the second pass, bwrite() is called to do the * job. */ again: @@ -3462,54 +3462,6 @@ nfs_print(struct vop_print_args *ap) return (0); } -/* - * This is the "real" nfs::bwrite(struct buf*). - * We set B_CACHE if this is a VMIO buffer. - */ -int -ncl_writebp(struct buf *bp, int force __unused, struct thread *td) -{ - int oldflags, rtval; - - if (bp->b_flags & B_INVAL) { - brelse(bp); - return (0); - } - - oldflags = bp->b_flags; - bp->b_flags |= B_CACHE; - - /* - * Undirty the bp. We will redirty it later if the I/O fails. - */ - bundirty(bp); - bp->b_flags &= ~B_DONE; - bp->b_ioflags &= ~BIO_ERROR; - bp->b_iocmd = BIO_WRITE; - - bufobj_wref(bp->b_bufobj); - curthread->td_ru.ru_oublock++; - - /* - * Note: to avoid loopback deadlocks, we do not - * assign b_runningbufspace. - */ - vfs_busy_pages(bp, 1); - - BUF_KERNPROC(bp); - bp->b_iooffset = dbtob(bp->b_blkno); - bstrategy(bp); - - if ((oldflags & B_ASYNC) != 0) - return (0); - - rtval = bufwait(bp); - if (oldflags & B_DELWRI) - reassignbuf(bp); - brelse(bp); - return (rtval); -} - /* * nfs special file access vnode op. * Essentially just get vattr and then imitate iaccess() since the device is @@ -3626,26 +3578,6 @@ out: return (fifo_specops.vop_close(ap)); } -/* - * Just call ncl_writebp() with the force argument set to 1. - * - * NOTE: B_DONE may or may not be set in a_bp on call. - */ -static int -nfs_bwrite(struct buf *bp) -{ - - return (ncl_writebp(bp, 1, curthread)); -} - -struct buf_ops buf_ops_newnfs = { - .bop_name = "buf_ops_nfs", - .bop_write = nfs_bwrite, - .bop_strategy = bufstrategy, - .bop_sync = bufsync, - .bop_bdflush = bufbdflush, -}; - static int nfs_getacl(struct vop_getacl_args *ap) {