From owner-FreeBSD-tech-jp@jp.freebsd.org  Sun May 10 23:51:05 1998
Received: by jaz.jp.freebsd.org (8.8.8+3.0Wbeta7/8.7.3) id XAA24743
	Sun, 10 May 1998 23:51:05 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.8+3.0Wbeta7/8.7.3) with ESMTP id XAA24736
	for <freebsd-tech-jp@jp.freebsd.org>; Sun, 10 May 1998 23:51:01 +0900 (JST)
Received: (from toshi@localhost) by sun117.sdc.co.jp (8.8.8/3.6W-moe5) id XAA20426; Sun, 10 May 1998 23:51:00 +0900 (JST)
Date: Sun, 10 May 1998 23:51:00 +0900 (JST)
From: Toshihiko ARAI <toshi@sdc.co.jp>
Message-Id: <199805101451.XAA20426@sun117.sdc.co.jp>
To: freebsd-tech-jp@jp.freebsd.org
X-Mailer: VM 5.96 (beta) / Mule 2.3 (SUETSUMUHANA) based on 19.28.2
Mime-Version: 1.0 (generated by tm-edit 7.101)
Content-Type: text/plain; charset=ISO-2022-JP
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=24]
X-Sequence: FreeBSD-tech-jp 1433
Subject: [FreeBSD-tech-jp 1433] msdosfs 'cp -p' modification time.
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org

$B?70f!w(BSDC$B$G$9!#(B

msdos-fs-mnt-22X-980505 $B$N%P%0%l%]!<%H$J$N$G$9$,!"(B
$B$b$7$+$7$?$i(B current $B$N%P%0$N$h$&$J5$$b$7$^$9!#(B

$BLdBj$O(B cp -p $B$G(B modification time $B$,J]B8$5$l$J$$$H$$$&$b$N$G!"(B
utimes() $B$,F0:n$7$J$$$o$1$G$O$J$/!"(Bclose() $BA0$K(B utimes() $B$7(B
$B$F$k(B cp $B$,0-$$$N$+$b$7$l$^$;$s!#(B
$B$A$J$_$K(B mount_msdos -u $B%*%W%7%g%s;XDj$7$F$^$9!#(B

% cp -p aaa /proj/dos/toshi/aaa
cp: chown: /proj/dos/toshi/aaa: Invalid argument

-rw-r--r--  1 toshi  arai   3187 Mar  6 23:21 aaa
-rwxr-xr-x  1 toshi  wheel  3187 May 10 20:23 /proj/dos/toshi/aaa

chown $B$O%]%j%7!<$K$b$h$j$^$9$,!"(Bchmod $B$N<BAu$+$i$_$k$K%3%a%s(B
$B%H$9$k$+!"(Bcp $B$N%=!<%9$+$i(B EPERM $BJV$9$N$,NI$$$h$&$K;W$$$^$9!#(B
$B$^$"!"C1$K15F+$7$$$@$1$G$?$$$7$?32$O$J$$$G$9$,!#(B

--------------- cut here ---------------
*** msdosfs_vnops.c.orig	Sun Apr 26 09:58:17 1998
--- msdosfs_vnops.c	Sun May 10 17:50:18 1998
***************
*** 691,698 ****
--- 691,700 ----
  		    (gid != pmp->pm_gid && !groupmember(gid, cred))) &&
  		    (error = suser(cred, &ap->a_p->p_acflag)))
  			return error;
+ #if 0
  		if (uid != pmp->pm_uid || gid != pmp->pm_gid)
  			return EINVAL;
+ #endif
  	}
  
  	if (vap->va_size != VNOVAL) {
***************
*** 724,733 ****
  			return (error);
  		if (vp->v_type != VDIR) {
  			if ((pmp->pm_flags & MSDOSFSMNT_NOWIN95) == 0 &&
! 			    vap->va_atime.tv_sec != VNOVAL)
  				unix2dostime(&vap->va_atime, &dep->de_ADate, NULL, NULL);
! 			if (vap->va_mtime.tv_sec != VNOVAL)
  				unix2dostime(&vap->va_mtime, &dep->de_MDate, &dep->de_MTime, NULL);
  			dep->de_Attributes |= ATTR_ARCHIVE;
  			dep->de_flag |= DE_MODIFIED;
  		}
--- 726,739 ----
  			return (error);
  		if (vp->v_type != VDIR) {
  			if ((pmp->pm_flags & MSDOSFSMNT_NOWIN95) == 0 &&
! 			    vap->va_atime.tv_sec != VNOVAL) {
  				unix2dostime(&vap->va_atime, &dep->de_ADate, NULL, NULL);
! 				dep->de_flag &= ~DE_ACCESS;
! 			}
! 			if (vap->va_mtime.tv_sec != VNOVAL) {
  				unix2dostime(&vap->va_mtime, &dep->de_MDate, &dep->de_MTime, NULL);
+ 				dep->de_flag &= ~DE_UPDATE;
+ 			}
  			dep->de_Attributes |= ATTR_ARCHIVE;
  			dep->de_flag |= DE_MODIFIED;
  		}
--------------- cut here ---------------
--
Software Development Co., Ltd, Tokyo, Japan.  $B?70fMxI'(B <toshi@sdc.co.jp>
