From owner-freebsd-fs@FreeBSD.ORG Fri Aug 19 22:58:56 2011 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 647691065670 for ; Fri, 19 Aug 2011 22:58:56 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-annu.mail.uoguelph.ca (esa-annu.mail.uoguelph.ca [131.104.91.36]) by mx1.freebsd.org (Postfix) with ESMTP id 24A858FC12 for ; Fri, 19 Aug 2011 22:58:56 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqAEAGbqTk6DaFvO/2dsb2JhbABBhEukOoFAAQEBAQMBAQEgBCcgCxsYAgINFgMCKQEJFQMBDQYIBwQBHASHVKc2kSmBLIQMgRAEkQWCDpER X-IronPort-AV: E=Sophos;i="4.68,253,1312171200"; d="scan'208";a="131656528" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-annu-pri.mail.uoguelph.ca with ESMTP; 19 Aug 2011 18:58:55 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 5BC15B3F9F; Fri, 19 Aug 2011 18:58:55 -0400 (EDT) Date: Fri, 19 Aug 2011 18:58:55 -0400 (EDT) From: Rick Macklem To: vadim nuclight Message-ID: <1303085986.99226.1313794735324.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [172.17.91.203] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - FF3.0 (Win)/6.0.10_GA_2692) Cc: freebsd-fs@freebsd.org Subject: Re: touch(1) not working on directories in an msdosfs(5) envirement X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Aug 2011 22:58:56 -0000 Vadim Goncharov wrote: > Hi Rick Macklem! > > On Fri, 19 Aug 2011 15:40:31 -0400 (EDT); Rick Macklem wrote about > 'Re: touch(1) not working on directories in an msdosfs(5) envirement': > > > Yes, FAT file systems do not maintain a directory modify > > time. (The original FAT12,16 structure didn't even have a > > modify time for the root dir.) > > > Just like Windows. > > > This causes issues when a FAT fs is exported via NFS and > > someone was going to experiment with an "in memory only" > > modify time for dirs, to minimize caching issues, but I > > haven't heard back from them lately. > > > Apparently Mac OS X chooses to update the modify time that > > exists on FAT32 file systems, but that isn't Windows compatible. > > What? I've just now created a test directory and changed it's modify > time > in Far Manager on Windows 2000, in a FAT32 partition. In fact it > allows to > change all three directory times, creation and access, too. So, I > conclude, > the FAT supports it. > Well, FAT32 (not the root dir of FAT12 or FAT16) does have a modify time stored on disk for the directory entry for a directory. The case I was thinking of (because that was what affected NFS client caching) was the case where an entry is added to a directory. I just checked that and it does not change the directory's modify time when an entry is added to a directory (at least for Windows7 personal...). I'm not enough of a Windows guy to even know what "Far Manager" is, but I'm not surprised that there is a tool that can change it. msdosfs_setattr() in sys/fs/msdosfs/msdosfs_vnops.c definitely only does it for non-directories: if (vp->v_type != VDIR) { if ((pmp->pm_flags & MSDOSFSMNT_NOWIN95) == 0 && vap->va_atime.tv_sec != VNOVAL) { dep->de_flag &= ~DE_ACCESS; timespec2fattime(&vap->va_atime, 0, &dep->de_ADate, NULL, NULL); } if (vap->va_mtime.tv_sec != VNOVAL) { dep->de_flag &= ~DE_UPDATE; timespec2fattime(&vap->va_mtime, 0, &dep->de_MDate, &dep->de_MTime, NULL); } dep->de_Attributes |= ATTR_ARCHIVE; dep->de_flag |= DE_MODIFIED; } I'm not the author of the above, but I had assumed that it was because Windows doesn't normally update it. Obviously, the above code could easily be changed (although I haven't tested that), if that is now considered correct behaviour. (It might have been because the msdosfs is meant to work for all FAT variants.) rick > -- > WBR, Vadim Goncharov. ICQ#166852181 mailto:vadim_nuclight@mail.ru > [Anti-Greenpeace][Sober FreeBSD > zealot][http://nuclight.livejournal.com] > > _______________________________________________ > freebsd-fs@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-fs > To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org"