Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow to set custom atime and mtime #133

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

invernizzi
Copy link

SETATTR system calls that set a custom atime on an inode (e.g., touch -t 0102030405 a.txt) set both the SETATTR_ATIME and SETATTR_ATIME_SET flags.
Prior to the fix, SETATTR_ATIME_SET was processed first, setting the custom atime correctly.
Then, SETATTR_ATIME was processed, which updated the atime to the current time.

This execution order was essentially overwriting the custom atime immediately. The fix executes the two instructions in the correct order, and fixes a typo (an atime that should have been an mtime).

Before the fix:

root@host ~ >> touch -t 0102030405 a.txt                                    
root@host ~ >> stat a.txt                                                   
  File: a.txt                                                                   
  Size: 0               Blocks: 1          IO Block: 8192   regular empty file  
Device: 14h/20d Inode: 45939       Links: 1                                     
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)        
Access: 2018-02-02 23:13:29.000000000 +0000                                     
Modify: 2018-02-02 23:13:29.000000000 +0000                                     
Change: 2018-02-02 23:13:29.000000000 +0000                                     
 Birth: -           

After the fix:

root@host ~ >> touch -t 0102030405 a.txt                                    
root@host ~ >> stat a.txt                                                   
  File: a.txt                                                                   
  Size: 0               Blocks: 1          IO Block: 8192   regular empty file  
Device: 14h/20d Inode: 45939       Links: 1                                     
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)        
Access: 2001-02-03 04:05:00.000000000 +0000                                     
Modify: 2001-02-03 04:05:00.000000000 +0000                                     
Change: 2001-02-03 04:05:00.000000000 +0000                                     
 Birth: -  

(Thanks for an awesome project!)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant