From owner-cvs-src@FreeBSD.ORG Tue May 31 19:39:53 2005 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2D5BD16A41C; Tue, 31 May 2005 19:39:53 +0000 (GMT) (envelope-from kensmith@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0ADAF43D48; Tue, 31 May 2005 19:39:53 +0000 (GMT) (envelope-from kensmith@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j4VJdqLA060745; Tue, 31 May 2005 19:39:52 GMT (envelope-from kensmith@repoman.freebsd.org) Received: (from kensmith@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j4VJdqxL060744; Tue, 31 May 2005 19:39:52 GMT (envelope-from kensmith) Message-Id: <200505311939.j4VJdqxL060744@repoman.freebsd.org> From: Ken Smith Date: Tue, 31 May 2005 19:39:52 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/kern kern_exec.c src/sys/sys vnode.h src/sys/ufs/ufs ufs_vnops.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 May 2005 19:39:53 -0000 kensmith 2005-05-31 19:39:52 UTC FreeBSD src repository Modified files: sys/kern kern_exec.c sys/sys vnode.h sys/ufs/ufs ufs_vnops.c Log: This patch addresses a standards violation issue. The standards say a file's access time should be updated when it gets executed. A while ago the mechanism used to exec was changed to use a more mmap based mechanism and this behavior was broken as a side-effect of that. A new vnode flag is added that gets set when the file gets executed, and the VOP_SETATTR() vnode operation gets called. The underlying filesystem is expected to handle it based on its own semantics, some filesystems don't support access time at all. Those that do should handle it in a way that does not block, does not generate I/O if possible, etc. In particular vn_start_write() has not been called. The UFS code handles it the same way as it would normally handle the access time if a file was read - the IN_ACCESS flag gets set in the inode but no other action happens at this point. The actual time update will happen later during a sync (which handles all the necessary locking). Got me into this: cperciva Discussed with: a lot with bde, a little with kan Showed patches to: phk, jeffr, standards@, arch@ Minor discussion on: arch@ Revision Changes Path 1.272 +13 -1 src/sys/kern/kern_exec.c 1.300 +1 -0 src/sys/sys/vnode.h 1.270 +11 -0 src/sys/ufs/ufs/ufs_vnops.c