Author: mjg
Date: Sat Oct  5 17:44:33 2019
New Revision: 353126
URL: https://svnweb.freebsd.org/changeset/base/353126

Log:
  devfs: plug redundant bwillwrite avoidance
  
  vn_write already checks for vnode type to see if bwillwrite should be called.
  
  This effectively reverts r244643.
  
  Reviewed by:  kib
  Sponsored by: The FreeBSD Foundation
  Differential Revision:        https://reviews.freebsd.org/D21905

Modified:
  head/sys/fs/devfs/devfs_vnops.c
  head/sys/kern/sys_generic.c
  head/sys/sys/file.h

Modified: head/sys/fs/devfs/devfs_vnops.c
==============================================================================
--- head/sys/fs/devfs/devfs_vnops.c     Sat Oct  5 17:36:33 2019        
(r353125)
+++ head/sys/fs/devfs/devfs_vnops.c     Sat Oct  5 17:44:33 2019        
(r353126)
@@ -1137,7 +1137,6 @@ devfs_open(struct vop_open_args *ap)
        int error, ref, vlocked;
        struct cdevsw *dsw;
        struct file *fpop;
-       struct mtx *mtxp;
 
        if (vp->v_type == VBLK)
                return (ENXIO);
@@ -1191,16 +1190,6 @@ devfs_open(struct vop_open_args *ap)
 #endif
        if (fp->f_ops == &badfileops)
                finit(fp, fp->f_flag, DTYPE_VNODE, dev, &devfs_ops_f);
-       mtxp = mtx_pool_find(mtxpool_sleep, fp);
-
-       /*
-        * Hint to the dofilewrite() to not force the buffer draining
-        * on the writer to the file.  Most likely, the write would
-        * not need normal buffers.
-        */
-       mtx_lock(mtxp);
-       fp->f_vnread_flags |= FDEVFS_VNODE;
-       mtx_unlock(mtxp);
        return (error);
 }
 

Modified: head/sys/kern/sys_generic.c
==============================================================================
--- head/sys/kern/sys_generic.c Sat Oct  5 17:36:33 2019        (r353125)
+++ head/sys/kern/sys_generic.c Sat Oct  5 17:44:33 2019        (r353126)
@@ -561,9 +561,6 @@ dofilewrite(struct thread *td, int fd, struct file *fp
                ktruio = cloneuio(auio);
 #endif
        cnt = auio->uio_resid;
-       if (fp->f_type == DTYPE_VNODE &&
-           (fp->f_vnread_flags & FDEVFS_VNODE) == 0)
-               bwillwrite();
        if ((error = fo_write(fp, auio, td->td_ucred, flags, td))) {
                if (auio->uio_resid != cnt && (error == ERESTART ||
                    error == EINTR || error == EWOULDBLOCK))

Modified: head/sys/sys/file.h
==============================================================================
--- head/sys/sys/file.h Sat Oct  5 17:36:33 2019        (r353125)
+++ head/sys/sys/file.h Sat Oct  5 17:44:33 2019        (r353126)
@@ -208,7 +208,6 @@ struct file {
 
 #define        FOFFSET_LOCKED       0x1
 #define        FOFFSET_LOCK_WAITING 0x2
-#define        FDEVFS_VNODE         0x4
 
 #endif /* _KERNEL || _WANT_FILE */
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to