aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2023-12-30 18:46:31 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2024-01-11 16:47:52 +0000
commit93be89569021e8507b2d326902157ccf7cac2141 (patch)
tree4b9ecc62f9aa51396e28fc1020a144f46cc22006
parentcee4d7c22585a736a5d231365ceb62e96d80488a (diff)
downloadsrc-93be89569021e8507b2d326902157ccf7cac2141.tar.gz
src-93be89569021e8507b2d326902157ccf7cac2141.zip
nfsclient: eliminate ncl_writebp()
(cherry picked from commit 656d2e83d9eef204c132f879d55782affede2ca9)
-rw-r--r--sys/fs/nfsclient/nfs.h1
-rw-r--r--sys/fs/nfsclient/nfs_clbio.c2
-rw-r--r--sys/fs/nfsclient/nfs_clnode.c2
-rw-r--r--sys/fs/nfsclient/nfs_clport.c2
-rw-r--r--sys/fs/nfsclient/nfs_clvnops.c70
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:
@@ -3463,54 +3463,6 @@ nfs_print(struct vop_print_args *ap)
}
/*
- * 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
* local to the client.
@@ -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)
{