File ctime/mtime update inconsistencies

Atte Peltomaki atte.peltomaki at f-secure.com
Wed Jul 16 11:24:49 GMT 2008


On Tue, Jul 15, 2008 at 04:27:25PM +0200, Stefan (metze) Metzmacher wrote:
> Atte Peltomaki schrieb:
> > Problem: neither ctime nor mtime attributes are consistently updated
> > when new files are created or existing ones replaced. 
> 
> The problem is that samba3 doesn't store the ctime and not filesystems
> doesn't have a way to set the ctime.
> 
> We always return the mtime as change_time and last_write_time,
> but only update the mtime to the last_write_time from the client.

This would be implementable for FreeBSD UFS2 due to it's support for
btime, which is equivalent for win32 ctime. 

Without this implemented and on other platforms/filesystems, respecting 
windows clients request to preserve the mtime causes practical problems:
Files cannot be reliably deleted based on how long they have been on a
share, and rsync must be used with the checksum option when run from
crontab, otherwise large files may get rsync'ed while still being
transferred and not get re-rsync'ed afterwards. 

Therefore, I suggest the behaviour is either changed to always use
current time when closing files after a write operation, or, if this is
unacceptable due to violating windows semantics, make it a configurable
option. 

Third option would be to implement it as a vfs module, though I think
doing this would be a bit overkill, especially since due filesystem
differences, the actual semantics will be different anyway. 

Comments? 

-- 
 ____________
 \   ______//     Atte Peltomäki - atte.peltomaki at f-secure.com
  \  \\____        UNIX System Administrator - IT Server Team
   \   __//    F-Secure Corp. PL 24, FIN-00181 Helsinki, Finland
    \  \\     Tel: +358 9 2520 0700,     direct: +358 9 2520 5423
     \ //                   http://www.f-secure.com
      \/         Integrated Solutions for Enterprise Security


More information about the samba-technical mailing list