From nobody@FreeBSD.org  Mon Sep 19 04:27:32 2005
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 6A21B16A41F
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 19 Sep 2005 04:27:32 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 3B43E43D45
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 19 Sep 2005 04:27:32 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.13.1/8.13.1) with ESMTP id j8J4RVsT031507
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 19 Sep 2005 04:27:31 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.13.1/8.13.1/Submit) id j8J4RVTg031506;
	Mon, 19 Sep 2005 04:27:31 GMT
	(envelope-from nobody)
Message-Id: <200509190427.j8J4RVTg031506@www.freebsd.org>
Date: Mon, 19 Sep 2005 04:27:31 GMT
From: Erez Zadok <ezk@am-utils.org>
To: freebsd-gnats-submit@FreeBSD.org
Subject: support a "noac" NFS mount flag to turn off the attribute cache
X-Send-Pr-Version: www-2.3

>Number:         86319
>Category:       kern
>Synopsis:       [nfs] [request] support a "noac" NFS mount flag to turn off the attribute cache
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          suspended
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Sep 19 04:30:03 GMT 2005
>Closed-Date:    
>Last-Modified:  Mon Jan 28 09:11:55 UTC 2008
>Originator:     Erez Zadok
>Release:        5.4 and 6.0
>Organization:
Stony Brook University
>Environment:
All versions of freebsd up to and including 6.0.
>Description:
To turn off the NFS attribute cache in FreeBSD, one has to set the
following four flags to zero in struct nfs_args:

nfs_args->acregmin = 0;
nfs_args->acregmax = 0;
nfs_args->acdirmin = 0;
nfs_args->acdirmax = 0;

In addition, you have to turn on four flags to tell the kernel that you
indeed want it to use your values for the above four flags:

nfs_args->flags |= \
  (NFSMNT_ACREGMIN|NFSMNT_ACREGMAX|NFSMNT_ACDIRMIN|NFSMNT_ACDIRMAX);

This is rather cumbersome and also confusing because some users may be
used to what other OSs do: just setting the four fields suffices.  For
that reason, some OSs like Solaris provide a convenience flag called
"noac" that can be set to simply turn off the attribute cache entirely.

I would like to ask that FreeBSD support such a convenience flag "noac".  

In addition, please document this flag and the current behaviour of how
one turns off the attribute cache, in the mount_nfs man page.

>How-To-Repeat:
      
>Fix:
      
>Release-Note:
>Audit-Trail:
In addition to setting the attribute cache timeouts to zero, it is also
necessary to enable synchronous writing for all files on the mount point.
Clients must push out changes so that other clients can detect them via
GETATTR.

The "noac" mount option on other clients is implemented in this way.

What is the use case for this request?  Would uncached I/O be a solution
for this use case?  Would you consider a "forcedirectio" type solution?
Responsible-Changed-From-To: freebsd-bugs->cel 
Responsible-Changed-By: cel 
Responsible-Changed-When: Wed May 10 18:19:54 UTC 2006 
Responsible-Changed-Why:  
cel is taking an NFS client feature request. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=86319 
Responsible-Changed-From-To: cel->freebsd-bugs 
Responsible-Changed-By: cel 
Responsible-Changed-When: Mon Mar 12 15:24:22 UTC 2007 
Responsible-Changed-Why:  
Back to the public pool. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=86319 
State-Changed-From-To: open->suspended 
State-Changed-By: linimon 
State-Changed-When: Mon Jan 28 09:11:46 UTC 2008 
State-Changed-Why:  
Mark suspended awaiting patches. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=86319 
>Unformatted:
