Date: Sun, 16 Aug 2020 21:07:19 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r364289 - head/sys/ufs/ufs Message-ID: <202008162107.07GL7Jbi076990@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kib Date: Sun Aug 16 21:07:19 2020 New Revision: 364289 URL: https://svnweb.freebsd.org/changeset/base/364289 Log: VMIO reads: enable for UFS Move v_object creation earlier, so that VIRF_PGREAD is never set if v_object is NULL. There is no much harm from instantiating v_object when later check for append-only flags disallows open. Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D25968 Modified: head/sys/ufs/ufs/ufs_vnops.c Modified: head/sys/ufs/ufs/ufs_vnops.c ============================================================================== --- head/sys/ufs/ufs/ufs_vnops.c Sun Aug 16 21:05:56 2020 (r364288) +++ head/sys/ufs/ufs/ufs_vnops.c Sun Aug 16 21:07:19 2020 (r364289) @@ -282,13 +282,20 @@ ufs_open(struct vop_open_args *ap) return (EOPNOTSUPP); ip = VTOI(vp); + vnode_create_vobject(vp, DIP(ip, i_size), ap->a_td); + if (vp->v_type == VREG && (vp->v_irflag & VIRF_PGREAD) == 0) { + VI_LOCK(vp); + vp->v_irflag |= VIRF_PGREAD; + VI_UNLOCK(vp); + } + /* * Files marked append-only must be opened for appending. */ if ((ip->i_flags & APPEND) && (ap->a_mode & (FWRITE | O_APPEND)) == FWRITE) return (EPERM); - vnode_create_vobject(vp, DIP(ip, i_size), ap->a_td); + return (0); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202008162107.07GL7Jbi076990>