From owner-freebsd-bugs@FreeBSD.ORG Mon Dec 4 09:40:21 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 41A6616A403 for ; Mon, 4 Dec 2006 09:40:21 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.FreeBSD.org (Postfix) with ESMTP id CBB2743CA5 for ; Mon, 4 Dec 2006 09:39:48 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id kB49eKtj032850 for ; Mon, 4 Dec 2006 09:40:20 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id kB49eK13032848; Mon, 4 Dec 2006 09:40:20 GMT (envelope-from gnats) Date: Mon, 4 Dec 2006 09:40:20 GMT Message-Id: <200612040940.kB49eK13032848@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Rene Ladan Cc: Subject: Re: kern/106255: [msdosfs] : correct setting of archive flag X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Rene Ladan List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Dec 2006 09:40:21 -0000 The following reply was made to PR kern/106255; it has been noted by GNATS. From: Rene Ladan To: Bruce Evans Cc: freebsd-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org Subject: Re: kern/106255: [msdosfs] : correct setting of archive flag Date: Mon, 04 Dec 2006 10:37:37 +0100 Bruce Evans schreef: > On Sun, 3 Dec 2006, Rene Ladan wrote: > >>> Description: >> The MSDOS file system has an archive bit in the flags field. This bit >> roughly corresponds to the archive flag on the UFS file system. >> However, it is set the wrong way around: the flag should be set when >> the bit is present, and cleared when the bit is absent. > > The comment in msdosfs/direntry.h says that ATTR_ARCHIVE means that > the file is new or modified (in other words, not archived), while the > comment in sys/stat.h says that SF_ARCHIVED means that the file is > archived, but I think both mean that it is archived. > Indeed, the MSDOS archive bit means that the user should archive the file. >> --- msdosfs_vnops.c Mon Nov 6 14:41:57 2006 >> +++ msdosfs_vnops.c.rene Sun Dec 3 11:58:47 2006 >> @@ -352,7 +352,7 @@ >> vap->va_ctime = vap->va_mtime; >> } >> vap->va_flags = 0; >> - if ((dep->de_Attributes & ATTR_ARCHIVE) == 0) >> + if (dep->de_Attributes & ATTR_ARCHIVE) >> vap->va_flags |= SF_ARCHIVED; >> vap->va_gen = 0; >> vap->va_blocksize = pmp->pm_bpcluster; > > This only fixes the reporting of the flag. msdosfs still maintains > the flag perfectly backwards (except DETIMES() is missing setting of > it for for all changes -- I think all changes to metadata except > possibly to atimes should set it to be perfectly backwards and clear > it to be correct). > Thanks, I'll look into that. > Grep shows that this flag is negatively useful in FreeBSD. No file > systems maintain it (except for getting it backwards in msdosfs). > All archiving utilities need to maintain it for it to be useful, > but none except tar even reference it (except possibly indirectly via > strtofflags(3)), and tar seems to just print it (indirectly via a > special version of strtofflags(3)). > That's up to the utilities. > Bruce > Regards, Rene -- GPG fingerprint = E738 5471 D185 7013 0EE0 4FC8 3C1D 6F83 12E1 84F6 (subkeys.pgp.net) "It won't fit on the line." -- me, 2001