This commit is contained in:
Andrew Gaul
2025-10-14 19:04:34 +09:00
committed by GitHub
parent 423683825a
commit b147c66c1b
16 changed files with 49 additions and 49 deletions

View File

@ -268,7 +268,7 @@ bool StatCache::DelStatHasLock(const std::string& key)
// remove cache(can not remove mount point) // remove cache(can not remove mount point)
if(key == pMountPointDir->Get()){ if(key == pMountPointDir->Get()){
if(!pMountPointDir->ClearData()){ if(!pMountPointDir->ClearData()){
S3FS_PRN_DBG("Failed to clear cache data for maount point."); S3FS_PRN_DBG("Failed to clear cache data for mount point.");
return false; return false;
} }
}else if(!pMountPointDir->RemoveChild(key)){ }else if(!pMountPointDir->RemoveChild(key)){

View File

@ -1014,7 +1014,7 @@ bool DirStatCache::AddHasLock(const std::string& strpath, const struct stat* pst
// [NOTE] // [NOTE]
// The strpath is an under child, so the found child must be a directory. // The strpath is an under child, so the found child must be a directory.
// However, it is currently a negative type, so it shuold be deleted. // However, it is currently a negative type, so it should be deleted.
// //
children.erase(iter); children.erase(iter);
iter = children.end(); iter = children.end();

View File

@ -80,7 +80,7 @@ class StatCacheNode : public std::enable_shared_from_this<StatCacheNode>
static bool UseNegativeCache; static bool UseNegativeCache;
static std::mutex cache_lock; // for internal data static std::mutex cache_lock; // for internal data
static unsigned long DisableCheckingExpire GUARDED_BY(cache_lock); // If greater than 0, it disables the expiration check, which allows disabling checks during processing. static unsigned long DisableCheckingExpire GUARDED_BY(cache_lock); // If greater than 0, it disables the expiration check, which allows disabling checks during processing.
static struct timespec DisableExpireDate GUARDED_BY(cache_lock); // Data registerd after this time will not be truncated(if 0 < DisableCheckingExpire) static struct timespec DisableExpireDate GUARDED_BY(cache_lock); // Data registered after this time will not be truncated(if 0 < DisableCheckingExpire)
private: private:
objtype_t cache_type GUARDED_BY(StatCacheNode::cache_lock) = objtype_t::UNKNOWN; // object type is set in the constructor(except dir). objtype_t cache_type GUARDED_BY(StatCacheNode::cache_lock) = objtype_t::UNKNOWN; // object type is set in the constructor(except dir).
@ -88,9 +88,9 @@ class StatCacheNode : public std::enable_shared_from_this<StatCacheNode>
unsigned long hit_count GUARDED_BY(StatCacheNode::cache_lock) = 0L; // hit count unsigned long hit_count GUARDED_BY(StatCacheNode::cache_lock) = 0L; // hit count
struct timespec cache_date GUARDED_BY(StatCacheNode::cache_lock) = {0, 0}; // registration/renewal time struct timespec cache_date GUARDED_BY(StatCacheNode::cache_lock) = {0, 0}; // registration/renewal time
bool notruncate GUARDED_BY(StatCacheNode::cache_lock) = false; // If true, not remove automatically at checking truncate. bool notruncate GUARDED_BY(StatCacheNode::cache_lock) = false; // If true, not remove automatically at checking truncate.
bool has_stat GUARDED_BY(StatCacheNode::cache_lock) = false; // valid stat information flag (for case only path registeration and no stat information) bool has_stat GUARDED_BY(StatCacheNode::cache_lock) = false; // valid stat information flag (for case only path registration and no stat information)
struct stat stbuf GUARDED_BY(StatCacheNode::cache_lock) = {}; // stat data struct stat stbuf GUARDED_BY(StatCacheNode::cache_lock) = {}; // stat data
bool has_meta GUARDED_BY(StatCacheNode::cache_lock) = false; // valid meta headers information flag (for case only path registeration and no meta headers) bool has_meta GUARDED_BY(StatCacheNode::cache_lock) = false; // valid meta headers information flag (for case only path registration and no meta headers)
headers_t meta GUARDED_BY(StatCacheNode::cache_lock); // meta list headers_t meta GUARDED_BY(StatCacheNode::cache_lock); // meta list
bool has_extval GUARDED_BY(StatCacheNode::cache_lock) = false; // valid extra value flag bool has_extval GUARDED_BY(StatCacheNode::cache_lock) = false; // valid extra value flag
std::string extvalue GUARDED_BY(StatCacheNode::cache_lock); // extra value for key(ex. used for symlink) std::string extvalue GUARDED_BY(StatCacheNode::cache_lock); // extra value for key(ex. used for symlink)

View File

@ -178,7 +178,7 @@ class S3fsCurl
off_t postdata_remaining; // use by post method and read callback function. off_t postdata_remaining; // use by post method and read callback function.
filepart partdata; // use by multipart upload/get object callback filepart partdata; // use by multipart upload/get object callback
bool is_use_ahbe; // additional header by extension bool is_use_ahbe; // additional header by extension
int retry_count; // retry count, this is used only sleep time before retring int retry_count; // retry count, this is used only sleep time before retrying
std::unique_ptr<FILE, decltype(&s3fs_fclose)> b_infile = {nullptr, &s3fs_fclose}; // backup for retrying std::unique_ptr<FILE, decltype(&s3fs_fclose)> b_infile = {nullptr, &s3fs_fclose}; // backup for retrying
const unsigned char* b_postdata; // backup for retrying const unsigned char* b_postdata; // backup for retrying
off_t b_postdata_remaining; // backup for retrying off_t b_postdata_remaining; // backup for retrying

View File

@ -394,7 +394,7 @@ int FdEntity::Open(const headers_t* pmeta, off_t size, const FileTimes& ts_times
S3FS_PRN_DBG("[path=%s][physical_fd=%d][size=%lld][ctime=%s,atime=%s,mtime=%s][flags=0x%x]", path.c_str(), physical_fd, static_cast<long long>(size), str(ts_times.ctime()).c_str(), str(ts_times.atime()).c_str(), str(ts_times.mtime()).c_str(), flags); S3FS_PRN_DBG("[path=%s][physical_fd=%d][size=%lld][ctime=%s,atime=%s,mtime=%s][flags=0x%x]", path.c_str(), physical_fd, static_cast<long long>(size), str(ts_times.ctime()).c_str(), str(ts_times.atime()).c_str(), str(ts_times.mtime()).c_str(), flags);
// [NOTE] // [NOTE]
// When the file size is incremental by truncating, it must be keeped // When the file size is incremental by truncating, it must be kept
// as an untreated area, and this area is set to these variables. // as an untreated area, and this area is set to these variables.
// //
off_t truncated_start = 0; off_t truncated_start = 0;
@ -754,7 +754,7 @@ bool FdEntity::GetStatsHasLock(struct stat& st) const
} }
const std::lock_guard<std::mutex> data_lock(fdent_data_lock); const std::lock_guard<std::mutex> data_lock(fdent_data_lock);
timestamps.RefrectFileTimes(st); timestamps.ReflectFileTimes(st);
return true; return true;
} }
@ -796,7 +796,7 @@ int FdEntity::SetMtimeHasLock(struct timespec time)
} }
// [NOTE] // [NOTE]
// This method updates timespecs(atime/mtime) and origianl meta heders // This method updates timespecs(atime/mtime) and original meta heders
// //
int FdEntity::SetFileTimesHasLock(const FileTimes& ts_times) int FdEntity::SetFileTimesHasLock(const FileTimes& ts_times)
{ {
@ -925,7 +925,7 @@ bool FdEntity::GetStatsFromMeta(struct stat& st) const
const std::lock_guard<std::mutex> data_lock(fdent_data_lock); const std::lock_guard<std::mutex> data_lock(fdent_data_lock);
st.st_size = pagelist.Size(); // set current file size st.st_size = pagelist.Size(); // set current file size
timestamps.RefrectFileTimes(st); timestamps.ReflectFileTimes(st);
return true; return true;
} }
@ -1349,7 +1349,7 @@ int FdEntity::RowFlushHasLock(int fd, const char* tpath, bool force_sync)
// [NOTE] // [NOTE]
// Normally, when client finishes editing a file and gets the file attributes, // Normally, when client finishes editing a file and gets the file attributes,
// FUSE calls flush->relaase, and then getsattr. // FUSE calls flush->release, and then getsattr.
// In other words, we expect that getattr will not be called between flush->release. // In other words, we expect that getattr will not be called between flush->release.
// However, because FUSE does not wait for the release process to be complete, // However, because FUSE does not wait for the release process to be complete,
// the case of flush->getattr->release occurs. // the case of flush->getattr->release occurs.

View File

@ -371,7 +371,7 @@ bool PseudoFdInfo::ParallelMultipartUpload(const char* path, const mp_part_list_
// setup instruction and request on another thread // setup instruction and request on another thread
int result; int result;
if(0 != (result = multipart_upload_part_request(strpath, tmp_upload_fd, iter->start, iter->size, iter->part_num, tmp_upload_id, petag, is_copy, &uploaded_sem, &upload_list_lock, &last_result))){ if(0 != (result = multipart_upload_part_request(strpath, tmp_upload_fd, iter->start, iter->size, iter->part_num, tmp_upload_id, petag, is_copy, &uploaded_sem, &upload_list_lock, &last_result))){
S3FS_PRN_ERR("failed setup instruction for Multipart Upload Part Request by erro(%d) [path=%s][start=%lld][size=%lld][part_num=%d][is_copy=%s]", result, strpath.c_str(), static_cast<long long int>(iter->start), static_cast<long long int>(iter->size), iter->part_num, (is_copy ? "true" : "false")); S3FS_PRN_ERR("failed setup instruction for Multipart Upload Part Request by error(%d) [path=%s][start=%lld][size=%lld][part_num=%d][is_copy=%s]", result, strpath.c_str(), static_cast<long long int>(iter->start), static_cast<long long int>(iter->size), iter->part_num, (is_copy ? "true" : "false"));
return false; return false;
} }
@ -488,7 +488,7 @@ ssize_t PseudoFdInfo::UploadBoundaryLastUntreatedArea(const char* path, headers_
// Get the area for uploading, if last update treated area can be uploaded. // Get the area for uploading, if last update treated area can be uploaded.
// //
// [NOTE] // [NOTE]
// * Create the updoad area list, if the untreated area aligned with the boundary // * Create the upload area list, if the untreated area aligned with the boundary
// exceeds the maximum upload size. // exceeds the maximum upload size.
// * If it overlaps with an area that has already been uploaded(unloaded list), // * If it overlaps with an area that has already been uploaded(unloaded list),
// that area is added to the cancellation list and included in the untreated area. // that area is added to the cancellation list and included in the untreated area.
@ -593,7 +593,7 @@ bool PseudoFdInfo::CancelAllThreads()
} }
// //
// Extract the list for multipart upload from the Unteated Area // Extract the list for multipart upload from the Untreated Area
// //
// The untreated_start parameter must be set aligning it with the boundaries // The untreated_start parameter must be set aligning it with the boundaries
// of the maximum multipart upload size. This method expects it to be bounded. // of the maximum multipart upload size. This method expects it to be bounded.
@ -735,7 +735,7 @@ bool PseudoFdInfo::ExtractUploadPartsFromAllArea(UntreatedParts& untreated_list,
cur_size = ((cur_start + max_mp_size) <= file_size ? max_mp_size : (file_size - cur_start)); cur_size = ((cur_start + max_mp_size) <= file_size ? max_mp_size : (file_size - cur_start));
// //
// Extract the untreated erea that overlaps this current area. // Extract the untreated area that overlaps this current area.
// (The extracted area is deleted from dup_untreated_list.) // (The extracted area is deleted from dup_untreated_list.)
// //
untreated_list_t cur_untreated_list; untreated_list_t cur_untreated_list;

View File

@ -199,7 +199,7 @@ void FileTimes::GetTime(stat_time_type type, struct timespec& time) const
} }
} }
void FileTimes::RefrectFileTimes(struct stat& st) const void FileTimes::ReflectFileTimes(struct stat& st) const
{ {
if(!IsOmitCTime()){ if(!IsOmitCTime()){
set_timespec_to_stat(st, stat_time_type::CTIME, ft_ctime); set_timespec_to_stat(st, stat_time_type::CTIME, ft_ctime);

View File

@ -90,7 +90,7 @@ class FileTimes
void GetATime(struct timespec& time) const { GetTime(stat_time_type::ATIME, time); } void GetATime(struct timespec& time) const { GetTime(stat_time_type::ATIME, time); }
void GetMTime(struct timespec& time) const { GetTime(stat_time_type::MTIME, time); } void GetMTime(struct timespec& time) const { GetTime(stat_time_type::MTIME, time); }
void RefrectFileTimes(struct stat& st) const; void ReflectFileTimes(struct stat& st) const;
// Set value // Set value
void SetCTime(struct timespec time) { SetTime(stat_time_type::CTIME, time); } void SetCTime(struct timespec time) { SetTime(stat_time_type::CTIME, time); }

View File

@ -4760,7 +4760,7 @@ static bool set_mountpoint_attribute(struct stat& mpst)
mp_mode = S_IFDIR | (allow_other ? (is_mp_umask ? (~mp_umask & (S_IRWXU | S_IRWXG | S_IRWXO)) : (S_IRWXU | S_IRWXG | S_IRWXO)) : S_IRWXU); mp_mode = S_IFDIR | (allow_other ? (is_mp_umask ? (~mp_umask & (S_IRWXU | S_IRWXG | S_IRWXO)) : (S_IRWXU | S_IRWXG | S_IRWXO)) : S_IRWXU);
// In MSYS2 environment with WinFsp, it is not supported to change mode of mount point. // In MSYS2 environment with WinFsp, it is not supported to change mode of mount point.
// Doing that forcely will occurs permission problem, so disabling it. // Doing that forcibly will create a permission problem, so disabling it.
#ifdef __MSYS__ #ifdef __MSYS__
return true; return true;
#else #else
@ -5993,7 +5993,7 @@ int main(int argc, char* argv[])
// Free disk space // Free disk space
if(-1 != fake_diskfree_size){ if(-1 != fake_diskfree_size){
// Case: Set fake disk space // Case: Set fake disk space
// Not check free disk space for maultipart request // Not check free disk space for multipart request
FdManager::InitFakeUsedDiskSize(fake_diskfree_size); FdManager::InitFakeUsedDiskSize(fake_diskfree_size);
}else{ }else{
@ -6012,7 +6012,7 @@ int main(int argc, char* argv[])
FdManager::SetEnsureFreeDiskSpace(dfsize); FdManager::SetEnsureFreeDiskSpace(dfsize);
} }
// Check free disk space for maultipart request // Check free disk space for multipart request
if(!FdManager::IsSafeDiskSpace(nullptr, S3fsCurl::GetMultipartSize() * ThreadPoolMan::GetWorkerCount())){ if(!FdManager::IsSafeDiskSpace(nullptr, S3fsCurl::GetMultipartSize() * ThreadPoolMan::GetWorkerCount())){
// Try to clean cache dir and retry // Try to clean cache dir and retry
S3FS_PRN_WARN("Not enough disk space for s3fs, try to clean cache dir"); S3FS_PRN_WARN("Not enough disk space for s3fs, try to clean cache dir");

View File

@ -93,9 +93,9 @@ bool FreeS3fsCredential(char** pperrstr)
return true; return true;
} }
bool UpdateS3fsCredential(char** ppaccess_key_id, char** ppserect_access_key, char** ppaccess_token, long long* ptoken_expire, char** pperrstr) bool UpdateS3fsCredential(char** ppaccess_key_id, char** ppsecret_access_key, char** ppaccess_token, long long* ptoken_expire, char** pperrstr)
{ {
S3FS_PRN_INFO("Parameters : ppaccess_key_id=%p, ppserect_access_key=%p, ppaccess_token=%p, ptoken_expire=%p", ppaccess_key_id, ppserect_access_key, ppaccess_token, ptoken_expire); S3FS_PRN_INFO("Parameters : ppaccess_key_id=%p, ppsecret_access_key=%p, ppaccess_token=%p, ptoken_expire=%p", ppaccess_key_id, ppsecret_access_key, ppaccess_token, ptoken_expire);
if(pperrstr){ if(pperrstr){
*pperrstr = strdup("Check why built-in function was called, the external credential library must have UpdateS3fsCredential function."); *pperrstr = strdup("Check why built-in function was called, the external credential library must have UpdateS3fsCredential function.");
@ -106,8 +106,8 @@ bool UpdateS3fsCredential(char** ppaccess_key_id, char** ppserect_access_key, ch
if(ppaccess_key_id){ if(ppaccess_key_id){
*ppaccess_key_id = nullptr; *ppaccess_key_id = nullptr;
} }
if(ppserect_access_key){ if(ppsecret_access_key){
*ppserect_access_key = nullptr; *ppsecret_access_key = nullptr;
} }
if(ppaccess_token){ if(ppaccess_token){
*ppaccess_token = nullptr; *ppaccess_token = nullptr;
@ -788,7 +788,7 @@ bool S3fsCred::ReadS3fsPasswdFile()
if(-1 == result){ if(-1 == result){
return false; return false;
}else if(1 == result){ }else if(1 == result){
// found ascess(secret) keys // found access(secret) keys
if(!SetAccessKey(access_key_id.c_str(), secret_access_key.c_str())){ if(!SetAccessKey(access_key_id.c_str(), secret_access_key.c_str())){
S3FS_PRN_EXIT("failed to set access key/secret key."); S3FS_PRN_EXIT("failed to set access key/secret key.");
return false; return false;
@ -1314,26 +1314,26 @@ bool S3fsCred::UpdateExtCredentials()
} }
char* paccess_key_id = nullptr; char* paccess_key_id = nullptr;
char* pserect_access_key = nullptr; char* psecret_access_key = nullptr;
char* paccess_token = nullptr; char* paccess_token = nullptr;
char* perrstr = nullptr; char* perrstr = nullptr;
long long token_expire = 0; long long token_expire = 0;
bool result = (*pFuncCredUpdate)(&paccess_key_id, &pserect_access_key, &paccess_token, &token_expire, &perrstr); bool result = (*pFuncCredUpdate)(&paccess_key_id, &psecret_access_key, &paccess_token, &token_expire, &perrstr);
if(!result){ if(!result){
// error occurred // error occurred
S3FS_PRN_ERR("Could not update credential by \"UpdateS3fsCredential\" function : %s", perrstr ? perrstr : "unknown"); S3FS_PRN_ERR("Could not update credential by \"UpdateS3fsCredential\" function : %s", perrstr ? perrstr : "unknown");
// cppcheck-suppress unmatchedSuppression // cppcheck-suppress unmatchedSuppression
// cppcheck-suppress knownConditionTrueFalse // cppcheck-suppress knownConditionTrueFalse
}else if(!paccess_key_id || !pserect_access_key || !paccess_token || token_expire <= 0){ }else if(!paccess_key_id || !psecret_access_key || !paccess_token || token_expire <= 0){
// some variables are wrong // some variables are wrong
S3FS_PRN_ERR("After updating credential by \"UpdateS3fsCredential\" function, but some variables are wrong : paccess_key_id=%p, pserect_access_key=%p, paccess_token=%p, token_expire=%lld", paccess_key_id, pserect_access_key, paccess_token, token_expire); S3FS_PRN_ERR("After updating credential by \"UpdateS3fsCredential\" function, but some variables are wrong : paccess_key_id=%p, psecret_access_key=%p, paccess_token=%p, token_expire=%lld", paccess_key_id, psecret_access_key, paccess_token, token_expire);
result = false; result = false;
}else{ }else{
// succeed updating // succeed updating
AWSAccessKeyId = paccess_key_id; AWSAccessKeyId = paccess_key_id;
AWSSecretAccessKey = pserect_access_key; AWSSecretAccessKey = psecret_access_key;
AWSAccessToken = paccess_token; AWSAccessToken = paccess_token;
AWSAccessTokenExpire = token_expire; AWSAccessTokenExpire = token_expire;
} }
@ -1346,8 +1346,8 @@ bool S3fsCred::UpdateExtCredentials()
} }
// cppcheck-suppress unmatchedSuppression // cppcheck-suppress unmatchedSuppression
// cppcheck-suppress knownConditionTrueFalse // cppcheck-suppress knownConditionTrueFalse
if(pserect_access_key){ if(psecret_access_key){
free(pserect_access_key); free(psecret_access_key);
} }
// cppcheck-suppress unmatchedSuppression // cppcheck-suppress unmatchedSuppression
// cppcheck-suppress knownConditionTrueFalse // cppcheck-suppress knownConditionTrueFalse

View File

@ -88,8 +88,8 @@ extern bool FreeS3fsCredential(char** pperrstr) S3FS_FUNCATTR_WEAK;
// //
// char** ppaccess_key_id : Allocate and set "Access Key ID" string // char** ppaccess_key_id : Allocate and set "Access Key ID" string
// area to *ppaccess_key_id. // area to *ppaccess_key_id.
// char** ppserect_access_key : Allocate and set "Access Secret Key ID" // char** ppsecret_access_key : Allocate and set "Access Secret Key ID"
// string area to *ppserect_access_key. // string area to *ppsecret_access_key.
// char** ppaccess_token : Allocate and set "Token" string area to // char** ppaccess_token : Allocate and set "Token" string area to
// *ppaccess_token. // *ppaccess_token.
// long long* ptoken_expire : Set token expire time(time_t) value to // long long* ptoken_expire : Set token expire time(time_t) value to
@ -105,7 +105,7 @@ extern bool FreeS3fsCredential(char** pperrstr) S3FS_FUNCATTR_WEAK;
// For all argument of the character string pointer(char **) set the // For all argument of the character string pointer(char **) set the
// allocated string area. The allocated area is freed by the caller. // allocated string area. The allocated area is freed by the caller.
// //
extern bool UpdateS3fsCredential(char** ppaccess_key_id, char** ppserect_access_key, char** ppaccess_token, long long* ptoken_expire, char** pperrstr) S3FS_FUNCATTR_WEAK; extern bool UpdateS3fsCredential(char** ppaccess_key_id, char** ppsecret_access_key, char** ppaccess_token, long long* ptoken_expire, char** pperrstr) S3FS_FUNCATTR_WEAK;
//--------------------------------------------------------- //---------------------------------------------------------
// Typedef Prototype function // Typedef Prototype function
@ -126,9 +126,9 @@ typedef bool (*fp_InitS3fsCredential)(const char* popts, char** pperrstr);
typedef bool (*fp_FreeS3fsCredential)(char** pperrstr); typedef bool (*fp_FreeS3fsCredential)(char** pperrstr);
// //
// bool UpdateS3fsCredential(char** ppaccess_key_id, char** ppserect_access_key, char** ppaccess_token, long long* ptoken_expire, char** pperrstr) // bool UpdateS3fsCredential(char** ppaccess_key_id, char** ppsecret_access_key, char** ppaccess_token, long long* ptoken_expire, char** pperrstr)
// //
typedef bool (*fp_UpdateS3fsCredential)(char** ppaccess_key_id, char** ppserect_access_key, char** ppaccess_token, long long* ptoken_expire, char** pperrstr); typedef bool (*fp_UpdateS3fsCredential)(char** ppaccess_key_id, char** ppsecret_access_key, char** ppaccess_token, long long* ptoken_expire, char** pperrstr);
} // extern "C" } // extern "C"

View File

@ -158,11 +158,11 @@ void* multi_head_req_threadworker(S3fsCurl& s3fscurl, void* arg)
} }
}else if(CURLE_OPERATION_TIMEDOUT == curlCode){ }else if(CURLE_OPERATION_TIMEDOUT == curlCode){
S3FS_PRN_ERR("Head Request(%s) is timeouted.", pthparam->path.c_str()); S3FS_PRN_ERR("Head Request(%s) is timed out.", pthparam->path.c_str());
isResetOffset= false; isResetOffset= false;
}else if(CURLE_PARTIAL_FILE == curlCode){ }else if(CURLE_PARTIAL_FILE == curlCode){
S3FS_PRN_WARN("Head Request(%s) is recieved data does not match the given size.", pthparam->path.c_str()); S3FS_PRN_WARN("Head Request(%s) is received data does not match the given size.", pthparam->path.c_str());
isResetOffset= false; isResetOffset= false;
}else{ }else{
@ -487,11 +487,11 @@ void* multipart_put_head_req_threadworker(S3fsCurl& s3fscurl, void* arg)
} }
}else if(CURLE_OPERATION_TIMEDOUT == curlCode){ }else if(CURLE_OPERATION_TIMEDOUT == curlCode){
S3FS_PRN_ERR("Put Head Request(%s->%s) is timeouted.", pthparam->from.c_str(), pthparam->to.c_str()); S3FS_PRN_ERR("Put Head Request(%s->%s) is timed out.", pthparam->from.c_str(), pthparam->to.c_str());
isResetOffset= false; isResetOffset= false;
}else if(CURLE_PARTIAL_FILE == curlCode){ }else if(CURLE_PARTIAL_FILE == curlCode){
S3FS_PRN_WARN("Put Head Request(%s->%s) is recieved data does not match the given size.", pthparam->from.c_str(), pthparam->to.c_str()); S3FS_PRN_WARN("Put Head Request(%s->%s) is received data does not match the given size.", pthparam->from.c_str(), pthparam->to.c_str());
isResetOffset= false; isResetOffset= false;
}else{ }else{
@ -601,11 +601,11 @@ void* parallel_get_object_req_threadworker(S3fsCurl& s3fscurl, void* arg)
} }
}else if(CURLE_OPERATION_TIMEDOUT == curlCode){ }else if(CURLE_OPERATION_TIMEDOUT == curlCode){
S3FS_PRN_ERR("Get Object Request(%s) is timeouted.", pthparam->path.c_str()); S3FS_PRN_ERR("Get Object Request(%s) is timed out.", pthparam->path.c_str());
isResetOffset= false; isResetOffset= false;
}else if(CURLE_PARTIAL_FILE == curlCode){ }else if(CURLE_PARTIAL_FILE == curlCode){
S3FS_PRN_WARN("Get Object Request(%s) is recieved data does not match the given size.", pthparam->path.c_str()); S3FS_PRN_WARN("Get Object Request(%s) is received data does not match the given size.", pthparam->path.c_str());
isResetOffset= false; isResetOffset= false;
}else{ }else{
@ -1496,7 +1496,7 @@ int get_iamrole_request(const std::string& strurl, const std::string& striamtoke
// //
int get_iamcred_request(const std::string& strurl, const std::string& striamtoken, const std::string& stribmsecret, std::string& cred) int get_iamcred_request(const std::string& strurl, const std::string& striamtoken, const std::string& stribmsecret, std::string& cred)
{ {
S3FS_PRN_INFO3("Get IAM Credentials Request directly [url=%s][iam token=%s][ibm secrect access key=%s]", strurl.c_str(), striamtoken.c_str(), stribmsecret.c_str()); S3FS_PRN_INFO3("Get IAM Credentials Request directly [url=%s][iam token=%s][ibm secret access key=%s]", strurl.c_str(), striamtoken.c_str(), stribmsecret.c_str());
S3fsCurl s3fscurl; S3fsCurl s3fscurl;
int result = 0; int result = 0;

View File

@ -22,7 +22,7 @@
#define S3FS_S3FS_XML_H_ #define S3FS_S3FS_XML_H_
#include <libxml/xpath.h> #include <libxml/xpath.h>
#include <libxml/parser.h> // [NOTE] nessetially include this header in some environments #include <libxml/parser.h> // [NOTE] include this header in some environments
#include <memory> #include <memory>
#include <string> #include <string>
#include <array> #include <array>

View File

@ -173,7 +173,7 @@ void ThreadPoolMan::Worker(ThreadPoolMan* psingleton, std::promise<int> promise)
} }
if(!S3fsCurlShare::DestroyCurlShareHandleForThread()){ if(!S3fsCurlShare::DestroyCurlShareHandleForThread()){
S3FS_PRN_WARN("Failed to destory curl share handle for this thread, but continue..."); S3FS_PRN_WARN("Failed to destroy curl share handle for this thread, but continue...");
} }
promise.set_value(0); promise.set_value(0);

View File

@ -34,7 +34,7 @@
int main(int argc, const char *argv[]) int main(int argc, const char *argv[])
{ {
if(argc != 2){ if(argc != 2){
fprintf(stderr, "[ERROR] Wrong paraemters\n"); fprintf(stderr, "[ERROR] Wrong parameters\n");
fprintf(stdout, "[Usage] cr_filename <base file path>\n"); fprintf(stdout, "[Usage] cr_filename <base file path>\n");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }

View File

@ -34,7 +34,7 @@
int main(int argc, const char *argv[]) int main(int argc, const char *argv[])
{ {
if(argc != 3){ if(argc != 3){
fprintf(stderr, "[ERROR] Wrong paraemters\n"); fprintf(stderr, "[ERROR] Wrong parameters\n");
fprintf(stdout, "[Usage] truncate_read_file <file path> <truncate size(bytes)>\n"); fprintf(stdout, "[Usage] truncate_read_file <file path> <truncate size(bytes)>\n");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }