From owner-p4-projects@FreeBSD.ORG Tue Jun 26 07:38:17 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 99F1B16A46B; Tue, 26 Jun 2007 07:38:17 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4081516A400 for ; Tue, 26 Jun 2007 07:38:17 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 3079113C44B for ; Tue, 26 Jun 2007 07:38:17 +0000 (UTC) (envelope-from zhouzhouyi@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l5Q7cH4d096190 for ; Tue, 26 Jun 2007 07:38:17 GMT (envelope-from zhouzhouyi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l5Q7cGNh096187 for perforce@freebsd.org; Tue, 26 Jun 2007 07:38:16 GMT (envelope-from zhouzhouyi@FreeBSD.org) Date: Tue, 26 Jun 2007 07:38:16 GMT Message-Id: <200706260738.l5Q7cGNh096187@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zhouzhouyi@FreeBSD.org using -f From: Zhouyi ZHOU To: Perforce Change Reviews Cc: Subject: PERFORCE change 122331 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jun 2007 07:38:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=122331 Change 122331 by zhouzhouyi@zhouzhouyi_mactest on 2007/06/26 07:37:27 Truncate /var/log/mactest into zero everytime the /dev/mactest opens Affected files ... .. //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test_log.c#2 edit Differences ... ==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test_log.c#2 (text+ko) ==== @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -90,7 +91,8 @@ int error; struct nameidata nd; int flags, vfslocked; - + struct mount *mp; + struct vattr vat; /* Only one process may open the device at a time. */ mtx_lock(&mac_test_log_mtx); @@ -104,13 +106,23 @@ NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE, UIO_SYSSPACE, "/var/log/mactest", curthread); flags = O_CREAT|O_TRUNC|FWRITE; - error = vn_open(&nd, &flags, 0, NULL); + error = vn_open(&nd, &flags, S_IRUSR| S_IWUSR, NULL); vfslocked = NDHASGIANT(&nd); logvnode = nd.ni_vp; VOP_UNLOCK(logvnode, 0, curthread); + /*truncate it to zero*/ + vn_start_write(logvnode, &mp, V_WAIT | PCATCH); + VOP_LEASE(logvnode, curthread, curthread->td_ucred, LEASE_WRITE); + VATTR_NULL(&vat); + vat.va_size = 0; + vn_lock(logvnode, LK_EXCLUSIVE | LK_RETRY, curthread); + VOP_SETATTR(logvnode, &vat, curthread->td_ucred, curthread); + VOP_UNLOCK(logvnode, 0, curthread); + vn_finished_write(mp); + extattr_set_vp1(logvnode, EXTATTR_NAMESPACE_SYSTEM, "mac_test", "mac_test", strlen("mac_test"), curthread);