Merge pull request #1025 from gaul/nocopyapi

Update ctime during nocopyapi operations
This commit is contained in:
Takeshi Nakatani 2019-05-02 17:55:42 +09:00 committed by GitHub
commit befc2e9e6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 0 deletions

View File

@ -1025,6 +1025,16 @@ bool FdEntity::GetStats(struct stat& st)
return true; return true;
} }
int FdEntity::SetCtime(time_t time)
{
if(-1 == time){
return 0;
}
orgmeta["x-amz-meta-ctime"] = str(time);
return 0;
}
int FdEntity::SetMtime(time_t time) int FdEntity::SetMtime(time_t time)
{ {
S3FS_PRN_INFO3("[path=%s][fd=%d][time=%jd]", path.c_str(), fd, (intmax_t)time); S3FS_PRN_INFO3("[path=%s][fd=%d][time=%jd]", path.c_str(), fd, (intmax_t)time);

View File

@ -154,6 +154,7 @@ class FdEntity
int GetFd(void) const { return fd; } int GetFd(void) const { return fd; }
bool GetStats(struct stat& st); bool GetStats(struct stat& st);
int SetCtime(time_t time);
int SetMtime(time_t time); int SetMtime(time_t time);
bool UpdateCtime(void); bool UpdateCtime(void);
bool UpdateMtime(void); bool UpdateMtime(void);

View File

@ -1735,6 +1735,8 @@ static int s3fs_chmod_nocopy(const char* _path, mode_t mode)
return -EIO; return -EIO;
} }
ent->SetCtime(time(NULL));
// Change file mode // Change file mode
ent->SetMode(mode); ent->SetMode(mode);
@ -1891,6 +1893,8 @@ static int s3fs_chown_nocopy(const char* _path, uid_t uid, gid_t gid)
return -EIO; return -EIO;
} }
ent->SetCtime(time(NULL));
// Change owner // Change owner
ent->SetUId(uid); ent->SetUId(uid);
ent->SetGId(gid); ent->SetGId(gid);