Sat Aug 19 11:27:42 2017 UTC ()
Consistently use {,UN}MARK_VNODE macros rather than function calls.


(maya)
diff -r1.136 -r1.137 src/sys/ufs/lfs/lfs_alloc.c
diff -r1.318 -r1.319 src/sys/ufs/lfs/lfs_vnops.c

cvs diff -r1.136 -r1.137 src/sys/ufs/lfs/lfs_alloc.c (expand / switch to unified diff)

--- src/sys/ufs/lfs/lfs_alloc.c 2017/06/10 05:29:36 1.136
+++ src/sys/ufs/lfs/lfs_alloc.c 2017/08/19 11:27:42 1.137
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: lfs_alloc.c,v 1.136 2017/06/10 05:29:36 maya Exp $ */ 1/* $NetBSD: lfs_alloc.c,v 1.137 2017/08/19 11:27:42 maya Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 1999, 2000, 2001, 2002, 2003, 2007 The NetBSD Foundation, Inc. 4 * Copyright (c) 1999, 2000, 2001, 2002, 2003, 2007 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Konrad E. Schroder <perseant@hhhh.org>. 8 * by Konrad E. Schroder <perseant@hhhh.org>.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -50,27 +50,27 @@ @@ -50,27 +50,27 @@
50 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 50 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
51 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 51 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
52 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 52 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
53 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 53 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
54 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 54 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
55 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 55 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
56 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 56 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
57 * SUCH DAMAGE. 57 * SUCH DAMAGE.
58 * 58 *
59 * @(#)lfs_alloc.c 8.4 (Berkeley) 1/4/94 59 * @(#)lfs_alloc.c 8.4 (Berkeley) 1/4/94
60 */ 60 */
61 61
62#include <sys/cdefs.h> 62#include <sys/cdefs.h>
63__KERNEL_RCSID(0, "$NetBSD: lfs_alloc.c,v 1.136 2017/06/10 05:29:36 maya Exp $"); 63__KERNEL_RCSID(0, "$NetBSD: lfs_alloc.c,v 1.137 2017/08/19 11:27:42 maya Exp $");
64 64
65#if defined(_KERNEL_OPT) 65#if defined(_KERNEL_OPT)
66#include "opt_quota.h" 66#include "opt_quota.h"
67#endif 67#endif
68 68
69#include <sys/param.h> 69#include <sys/param.h>
70#include <sys/systm.h> 70#include <sys/systm.h>
71#include <sys/kernel.h> 71#include <sys/kernel.h>
72#include <sys/buf.h> 72#include <sys/buf.h>
73#include <sys/lock.h> 73#include <sys/lock.h>
74#include <sys/vnode.h> 74#include <sys/vnode.h>
75#include <sys/syslog.h> 75#include <sys/syslog.h>
76#include <sys/mount.h> 76#include <sys/mount.h>
@@ -500,27 +500,27 @@ lfs_vfree(struct vnode *vp, ino_t ino, i @@ -500,27 +500,27 @@ lfs_vfree(struct vnode *vp, ino_t ino, i
500 cv_wait(&vp->v_cv, vp->v_interlock); 500 cv_wait(&vp->v_cv, vp->v_interlock);
501 } 501 }
502 mutex_exit(vp->v_interlock); 502 mutex_exit(vp->v_interlock);
503 503
504 lfs_seglock(fs, SEGM_PROT); 504 lfs_seglock(fs, SEGM_PROT);
505 505
506 /* 506 /*
507 * If the inode was in a dirop, it isn't now. 507 * If the inode was in a dirop, it isn't now.
508 * 508 *
509 * XXX: why are (v_uflag & VU_DIROP) and (ip->i_state & IN_ADIROP) 509 * XXX: why are (v_uflag & VU_DIROP) and (ip->i_state & IN_ADIROP)
510 * not updated together in one function? (and why do both exist, 510 * not updated together in one function? (and why do both exist,
511 * anyway?) 511 * anyway?)
512 */ 512 */
513 lfs_unmark_vnode(vp); 513 UNMARK_VNODE(vp);
514 514
515 mutex_enter(&lfs_lock); 515 mutex_enter(&lfs_lock);
516 if (vp->v_uflag & VU_DIROP) { 516 if (vp->v_uflag & VU_DIROP) {
517 vp->v_uflag &= ~VU_DIROP; 517 vp->v_uflag &= ~VU_DIROP;
518 --lfs_dirvcount; 518 --lfs_dirvcount;
519 --fs->lfs_dirvcount; 519 --fs->lfs_dirvcount;
520 TAILQ_REMOVE(&fs->lfs_dchainhd, ip, i_lfs_dchain); 520 TAILQ_REMOVE(&fs->lfs_dchainhd, ip, i_lfs_dchain);
521 wakeup(&fs->lfs_dirvcount); 521 wakeup(&fs->lfs_dirvcount);
522 wakeup(&lfs_dirvcount); 522 wakeup(&lfs_dirvcount);
523 mutex_exit(&lfs_lock); 523 mutex_exit(&lfs_lock);
524 vrele(vp); 524 vrele(vp);
525 525
526 /* 526 /*

cvs diff -r1.318 -r1.319 src/sys/ufs/lfs/lfs_vnops.c (expand / switch to unified diff)

--- src/sys/ufs/lfs/lfs_vnops.c 2017/07/26 16:42:37 1.318
+++ src/sys/ufs/lfs/lfs_vnops.c 2017/08/19 11:27:42 1.319
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: lfs_vnops.c,v 1.318 2017/07/26 16:42:37 maya Exp $ */ 1/* $NetBSD: lfs_vnops.c,v 1.319 2017/08/19 11:27:42 maya Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. 4 * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Konrad E. Schroder <perseant@hhhh.org>. 8 * by Konrad E. Schroder <perseant@hhhh.org>.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -115,27 +115,27 @@ @@ -115,27 +115,27 @@
115 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 115 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
116 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 116 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
117 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 117 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
118 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 118 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
119 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 119 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
120 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 120 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
121 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 121 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
122 * SUCH DAMAGE. 122 * SUCH DAMAGE.
123 * 123 *
124 * @(#)ufs_vnops.c 8.28 (Berkeley) 7/31/95 124 * @(#)ufs_vnops.c 8.28 (Berkeley) 7/31/95
125 */ 125 */
126 126
127#include <sys/cdefs.h> 127#include <sys/cdefs.h>
128__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.318 2017/07/26 16:42:37 maya Exp $"); 128__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.319 2017/08/19 11:27:42 maya Exp $");
129 129
130#ifdef _KERNEL_OPT 130#ifdef _KERNEL_OPT
131#include "opt_compat_netbsd.h" 131#include "opt_compat_netbsd.h"
132#include "opt_uvm_page_trkown.h" 132#include "opt_uvm_page_trkown.h"
133#endif 133#endif
134 134
135#include <sys/param.h> 135#include <sys/param.h>
136#include <sys/systm.h> 136#include <sys/systm.h>
137#include <sys/namei.h> 137#include <sys/namei.h>
138#include <sys/resourcevar.h> 138#include <sys/resourcevar.h>
139#include <sys/kernel.h> 139#include <sys/kernel.h>
140#include <sys/file.h> 140#include <sys/file.h>
141#include <sys/stat.h> 141#include <sys/stat.h>
@@ -364,27 +364,27 @@ lfs_makeinode(struct vattr *vap, struct  @@ -364,27 +364,27 @@ lfs_makeinode(struct vattr *vap, struct
364{ 364{
365 struct inode *ip; 365 struct inode *ip;
366 struct vnode *tvp; 366 struct vnode *tvp;
367 int error; 367 int error;
368 368
369 error = vcache_new(dvp->v_mount, dvp, vap, cnp->cn_cred, &tvp); 369 error = vcache_new(dvp->v_mount, dvp, vap, cnp->cn_cred, &tvp);
370 if (error) 370 if (error)
371 return error; 371 return error;
372 error = vn_lock(tvp, LK_EXCLUSIVE); 372 error = vn_lock(tvp, LK_EXCLUSIVE);
373 if (error) { 373 if (error) {
374 vrele(tvp); 374 vrele(tvp);
375 return error; 375 return error;
376 } 376 }
377 lfs_mark_vnode(tvp); 377 MARK_VNODE(tvp);
378 *vpp = tvp; 378 *vpp = tvp;
379 ip = VTOI(tvp); 379 ip = VTOI(tvp);
380 ip->i_state |= IN_ACCESS | IN_CHANGE | IN_UPDATE; 380 ip->i_state |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
381 ip->i_nlink = 1; 381 ip->i_nlink = 1;
382 DIP_ASSIGN(ip, nlink, 1); 382 DIP_ASSIGN(ip, nlink, 1);
383 383
384 /* Authorize setting SGID if needed. */ 384 /* Authorize setting SGID if needed. */
385 if (ip->i_mode & ISGID) { 385 if (ip->i_mode & ISGID) {
386 error = kauth_authorize_vnode(cnp->cn_cred, KAUTH_VNODE_WRITE_SECURITY, 386 error = kauth_authorize_vnode(cnp->cn_cred, KAUTH_VNODE_WRITE_SECURITY,
387 tvp, NULL, genfs_can_chmod(tvp->v_type, cnp->cn_cred, ip->i_uid, 387 tvp, NULL, genfs_can_chmod(tvp->v_type, cnp->cn_cred, ip->i_uid,
388 ip->i_gid, MAKEIMODE(vap->va_type, vap->va_mode))); 388 ip->i_gid, MAKEIMODE(vap->va_type, vap->va_mode)));
389 if (error) { 389 if (error) {
390 ip->i_mode &= ~ISGID; 390 ip->i_mode &= ~ISGID;
@@ -409,27 +409,27 @@ lfs_makeinode(struct vattr *vap, struct  @@ -409,27 +409,27 @@ lfs_makeinode(struct vattr *vap, struct
409 *vpp = tvp; 409 *vpp = tvp;
410 KASSERT(VOP_ISLOCKED(*vpp) == LK_EXCLUSIVE); 410 KASSERT(VOP_ISLOCKED(*vpp) == LK_EXCLUSIVE);
411 return (0); 411 return (0);
412 412
413 bad: 413 bad:
414 /* 414 /*
415 * Write error occurred trying to update the inode 415 * Write error occurred trying to update the inode
416 * or the directory so must deallocate the inode. 416 * or the directory so must deallocate the inode.
417 */ 417 */
418 ip->i_nlink = 0; 418 ip->i_nlink = 0;
419 DIP_ASSIGN(ip, nlink, 0); 419 DIP_ASSIGN(ip, nlink, 0);
420 ip->i_state |= IN_CHANGE; 420 ip->i_state |= IN_CHANGE;
421 /* If IN_ADIROP, account for it */ 421 /* If IN_ADIROP, account for it */
422 lfs_unmark_vnode(tvp); 422 UNMARK_VNODE(tvp);
423 vput(tvp); 423 vput(tvp);
424 return (error); 424 return (error);
425} 425}
426 426
427/* 427/*
428 * Synch an open file. 428 * Synch an open file.
429 */ 429 */
430/* ARGSUSED */ 430/* ARGSUSED */
431int 431int
432lfs_fsync(void *v) 432lfs_fsync(void *v)
433{ 433{
434 struct vop_fsync_args /* { 434 struct vop_fsync_args /* {
435 struct vnode *a_vp; 435 struct vnode *a_vp;
@@ -516,27 +516,27 @@ out: @@ -516,27 +516,27 @@ out:
516/* 516/*
517 * Take IN_ADIROP off, then call ulfs_inactive. 517 * Take IN_ADIROP off, then call ulfs_inactive.
518 */ 518 */
519int 519int
520lfs_inactive(void *v) 520lfs_inactive(void *v)
521{ 521{
522 struct vop_inactive_v2_args /* { 522 struct vop_inactive_v2_args /* {
523 struct vnode *a_vp; 523 struct vnode *a_vp;
524 bool *a_recycle; 524 bool *a_recycle;
525 } */ *ap = v; 525 } */ *ap = v;
526 526
527 KASSERT(VOP_ISLOCKED(ap->a_vp) == LK_EXCLUSIVE); 527 KASSERT(VOP_ISLOCKED(ap->a_vp) == LK_EXCLUSIVE);
528 528
529 lfs_unmark_vnode(ap->a_vp); 529 UNMARK_VNODE(ap->a_vp);
530 530
531 /* 531 /*
532 * The Ifile is only ever inactivated on unmount. 532 * The Ifile is only ever inactivated on unmount.
533 * Streamline this process by not giving it more dirty blocks. 533 * Streamline this process by not giving it more dirty blocks.
534 */ 534 */
535 if (VTOI(ap->a_vp)->i_number == LFS_IFILE_INUM) { 535 if (VTOI(ap->a_vp)->i_number == LFS_IFILE_INUM) {
536 mutex_enter(&lfs_lock); 536 mutex_enter(&lfs_lock);
537 LFS_CLR_UINO(VTOI(ap->a_vp), IN_ALLMOD); 537 LFS_CLR_UINO(VTOI(ap->a_vp), IN_ALLMOD);
538 mutex_exit(&lfs_lock); 538 mutex_exit(&lfs_lock);
539 return 0; 539 return 0;
540 } 540 }
541 541
542#ifdef DEBUG 542#ifdef DEBUG
@@ -979,27 +979,27 @@ lfs_mkdir(void *v) @@ -979,27 +979,27 @@ lfs_mkdir(void *v)
979 */ 979 */
980 error = vcache_new(dvp->v_mount, dvp, vap, cnp->cn_cred, ap->a_vpp); 980 error = vcache_new(dvp->v_mount, dvp, vap, cnp->cn_cred, ap->a_vpp);
981 if (error) 981 if (error)
982 goto out; 982 goto out;
983 983
984 error = vn_lock(*ap->a_vpp, LK_EXCLUSIVE); 984 error = vn_lock(*ap->a_vpp, LK_EXCLUSIVE);
985 if (error) { 985 if (error) {
986 vrele(*ap->a_vpp); 986 vrele(*ap->a_vpp);
987 *ap->a_vpp = NULL; 987 *ap->a_vpp = NULL;
988 goto out; 988 goto out;
989 } 989 }
990 990
991 tvp = *ap->a_vpp; 991 tvp = *ap->a_vpp;
992 lfs_mark_vnode(tvp); 992 MARK_VNODE(tvp);
993 ip = VTOI(tvp); 993 ip = VTOI(tvp);
994 ip->i_state |= IN_ACCESS | IN_CHANGE | IN_UPDATE; 994 ip->i_state |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
995 ip->i_nlink = 2; 995 ip->i_nlink = 2;
996 DIP_ASSIGN(ip, nlink, 2); 996 DIP_ASSIGN(ip, nlink, 2);
997 if (cnp->cn_flags & ISWHITEOUT) { 997 if (cnp->cn_flags & ISWHITEOUT) {
998 ip->i_flags |= UF_OPAQUE; 998 ip->i_flags |= UF_OPAQUE;
999 DIP_ASSIGN(ip, flags, ip->i_flags); 999 DIP_ASSIGN(ip, flags, ip->i_flags);
1000 } 1000 }
1001 1001
1002 /* 1002 /*
1003 * Bump link count in parent directory to reflect work done below. 1003 * Bump link count in parent directory to reflect work done below.
1004 */ 1004 */
1005 dp->i_nlink++; 1005 dp->i_nlink++;
@@ -1054,27 +1054,27 @@ lfs_mkdir(void *v) @@ -1054,27 +1054,27 @@ lfs_mkdir(void *v)
1054 VOP_UNLOCK(tvp); 1054 VOP_UNLOCK(tvp);
1055 } else { 1055 } else {
1056 dp->i_nlink--; 1056 dp->i_nlink--;
1057 DIP_ASSIGN(dp, nlink, dp->i_nlink); 1057 DIP_ASSIGN(dp, nlink, dp->i_nlink);
1058 dp->i_state |= IN_CHANGE; 1058 dp->i_state |= IN_CHANGE;
1059 /* 1059 /*
1060 * No need to do an explicit lfs_truncate here, vrele will 1060 * No need to do an explicit lfs_truncate here, vrele will
1061 * do this for us because we set the link count to 0. 1061 * do this for us because we set the link count to 0.
1062 */ 1062 */
1063 ip->i_nlink = 0; 1063 ip->i_nlink = 0;
1064 DIP_ASSIGN(ip, nlink, 0); 1064 DIP_ASSIGN(ip, nlink, 0);
1065 ip->i_state |= IN_CHANGE; 1065 ip->i_state |= IN_CHANGE;
1066 /* If IN_ADIROP, account for it */ 1066 /* If IN_ADIROP, account for it */
1067 lfs_unmark_vnode(tvp); 1067 UNMARK_VNODE(tvp);
1068 vput(tvp); 1068 vput(tvp);
1069 } 1069 }
1070 1070
1071out: 1071out:
1072 UNMARK_VNODE(dvp); 1072 UNMARK_VNODE(dvp);
1073 UNMARK_VNODE(*vpp); 1073 UNMARK_VNODE(*vpp);
1074 if (error) { 1074 if (error) {
1075 *vpp = NULL; 1075 *vpp = NULL;
1076 } 1076 }
1077 lfs_unset_dirop(fs, dvp, "mkdir"); 1077 lfs_unset_dirop(fs, dvp, "mkdir");
1078 1078
1079 vrele(dvp); 1079 vrele(dvp);
1080 return (error); 1080 return (error);