From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) From: arisawa In-Reply-To: <1a6cb4cfd1c284bb6b0206a0c0e11b0c@rei2.9hal> Date: Mon, 25 Feb 2013 16:24:30 +0900 Content-Transfer-Encoding: quoted-printable Message-Id: <06B26204-D2D9-4438-8EB3-603B88F8B03C@ar.aichi-u.ac.jp> References: <1a6cb4cfd1c284bb6b0206a0c0e11b0c@rei2.9hal> To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Subject: Re: [9fans] curious mtime of cwfs Topicbox-Message-UUID: 1ea0b4e2-ead8-11e9-9d60-3106f5b1d025 Hello sinap, thank you for your quick fix. your patches work also for me. however the problem is not only in dump but (I think) in all directories = of cwfs. # # fossil # ar% ls -lt --rw-r--r-- M 546403 arisawa arisawa 1123 Apr 3 2001 a.c --rwxrwxr-x M 546403 arisawa arisawa 39276 Mar 31 2001 8.out --rw-rw-r-- M 546403 arisawa arisawa 4559 Mar 31 2001 a.8 --rw-r--r-- M 546403 arisawa arisawa 248 Mar 31 2001 mkfile ar% ls -ld . d-rwxrwxrwx M 546403 arisawa arisawa 0 Aug 5 2002 wrk ar% touch a.c ar% ls -ld . d-rwxrwxrwx M 546403 arisawa arisawa 0 Feb 25 16:02 wrk # this is OK because the directory is updated ar%=20 # # cwfs # maia# ls -lt --rw-rw-r-- M 20 arisawa arisawa 43320 Feb 25 15:50 cw.c d-rwxrwxr-x M 20 arisawa arisawa 0 Feb 17 17:43 cwfs64x ... maia# ls -ld . d-rwxrwxr-x M 20 arisawa arisawa 0 Sep 11 14:17 cwfs # NG because cw.c updated this time. maia# Kenji Arisawa On 2013/02/25, at 14:55, cinap_lenrek@gmx.de wrote: > yes. very good observation. the following change fixes it for me (with = added comments) >=20 > term% hg diff -r 1763 cw.c > diff -r 5229de0742e8 sys/src/cmd/cwfs/cw.c > --- a/sys/src/cmd/cwfs/cw.c Tue Jul 24 19:42:18 2012 +0200 > +++ b/sys/src/cmd/cwfs/cw.c Mon Feb 25 06:30:55 2013 +0100 > @@ -1557,14 +1557,13 @@ > d1->uid =3D d->uid; > d1->gid =3D d->gid; > putbuf(p); > - accessdir(p1, d1, FWRITE, 0); <- was modifying yyyy direcoty = in case when added, will do below instead > + accessdir(pr, dr, FWRITE, 0); <- update mtime of dumproot as = we added yyyy directory >=20 > /* > * put mmdd[count] in year directory > */ > found2: > - accessdir(p1, d1, FREAD, 0); <- was updating atime of yyyy = direcotory in case when it was already present. this is not needed as = we'r going to always update both atime and mtime below > - p1->flags |=3D Bmod; /* noatime */ > + accessdir(pr, dr, FREAD, 0); <- update atime of dumproot only = as we didnt add a new yyyy direcotory > putbuf(pr); > pr =3D p1; <- yyyy = directory become pr/dr > dr =3D d1; > @@ -1603,6 +1602,7 @@ > d1->qid.version +=3D n; > accessdir(p1, d1, FWRITE, 0); <- update dump sub directory = times > putbuf(p1); > + accessdir(pr, dr, FWRITE, 0); <- now update atime and mtime of = yyyy directory after creating dump sub directory in it > putbuf(pr); >=20 > cw->fsize =3D cwsize(cw->dev); >=20 > the problem was that we only updated mtime of the yyyy directory when > we newly created it, otherwise only access time was updated. but we > *always* have to update mtime of the yyyy directory because we are > modifying it by creating the dump sub directory in it. >=20 > -- > cinap >=20