Date: Tue, 26 Jun 2007 07:38:16 GMT From: Zhouyi ZHOU <zhouzhouyi@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 122331 for review Message-ID: <200706260738.l5Q7cGNh096187@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 <sys/shm.h> #include <sys/socket.h> #include <sys/socketvar.h> +#include <sys/stat.h> #include <sys/sx.h> #include <sys/sysctl.h> #include <sys/mac.h> @@ -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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200706260738.l5Q7cGNh096187>