mirror of
https://github.com/s3fs-fuse/s3fs-fuse.git
synced 2024-11-15 16:57:10 +00:00
Fixed a bug about overwrite metadata at updating directory stats
This commit is contained in:
parent
9f6ed6c08e
commit
ea517c80a4
@ -382,7 +382,7 @@ static int chk_dir_object_type(const char* path, string& newpath, string& nowpat
|
||||
(*pType) = DIRTYPE_NOOBJ;
|
||||
nowpath = "";
|
||||
}else{
|
||||
nowpath = path;
|
||||
nowpath = newpath;
|
||||
if(0 < nowpath.length() && '/' == nowpath[nowpath.length() - 1]){
|
||||
// "dir/" type
|
||||
(*pType) = DIRTYPE_NEW;
|
||||
@ -842,6 +842,10 @@ static int put_headers(const char* path, headers_t& meta, bool is_copy)
|
||||
}
|
||||
}
|
||||
|
||||
// [NOTE]
|
||||
// if path is 'dir/', it does not have cache(could not open file for directory stat)
|
||||
//
|
||||
if('/' != path[strlen(path) - 1]){
|
||||
FdEntity* ent = NULL;
|
||||
if(NULL == (ent = FdManager::get()->ExistOpen(path, -1, !FdManager::IsCacheDir()))){
|
||||
// no opened fd
|
||||
@ -855,6 +859,7 @@ static int put_headers(const char* path, headers_t& meta, bool is_copy)
|
||||
ent->SetMtime(mtime);
|
||||
FdManager::get()->Close(ent);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user