Fix typos (#2742)
This commit is contained in:
@ -268,7 +268,7 @@ bool StatCache::DelStatHasLock(const std::string& key)
|
||||
// remove cache(can not remove mount point)
|
||||
if(key == pMountPointDir->Get()){
|
||||
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;
|
||||
}
|
||||
}else if(!pMountPointDir->RemoveChild(key)){
|
||||
|
||||
@ -1014,7 +1014,7 @@ bool DirStatCache::AddHasLock(const std::string& strpath, const struct stat* pst
|
||||
|
||||
// [NOTE]
|
||||
// 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);
|
||||
iter = children.end();
|
||||
|
||||
@ -80,7 +80,7 @@ class StatCacheNode : public std::enable_shared_from_this<StatCacheNode>
|
||||
static bool UseNegativeCache;
|
||||
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 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:
|
||||
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
|
||||
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 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
|
||||
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
|
||||
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)
|
||||
|
||||
@ -178,7 +178,7 @@ class S3fsCurl
|
||||
off_t postdata_remaining; // use by post method and read callback function.
|
||||
filepart partdata; // use by multipart upload/get object callback
|
||||
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
|
||||
const unsigned char* b_postdata; // backup for retrying
|
||||
off_t b_postdata_remaining; // backup for retrying
|
||||
|
||||
@ -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);
|
||||
|
||||
// [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.
|
||||
//
|
||||
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);
|
||||
timestamps.RefrectFileTimes(st);
|
||||
timestamps.ReflectFileTimes(st);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -796,7 +796,7 @@ int FdEntity::SetMtimeHasLock(struct timespec time)
|
||||
}
|
||||
|
||||
// [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)
|
||||
{
|
||||
@ -925,7 +925,7 @@ bool FdEntity::GetStatsFromMeta(struct stat& st) const
|
||||
const std::lock_guard<std::mutex> data_lock(fdent_data_lock);
|
||||
st.st_size = pagelist.Size(); // set current file size
|
||||
|
||||
timestamps.RefrectFileTimes(st);
|
||||
timestamps.ReflectFileTimes(st);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -1349,7 +1349,7 @@ int FdEntity::RowFlushHasLock(int fd, const char* tpath, bool force_sync)
|
||||
|
||||
// [NOTE]
|
||||
// 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.
|
||||
// However, because FUSE does not wait for the release process to be complete,
|
||||
// the case of flush->getattr->release occurs.
|
||||
|
||||
@ -371,7 +371,7 @@ bool PseudoFdInfo::ParallelMultipartUpload(const char* path, const mp_part_list_
|
||||
// setup instruction and request on another thread
|
||||
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))){
|
||||
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;
|
||||
}
|
||||
|
||||
@ -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.
|
||||
//
|
||||
// [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.
|
||||
// * 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.
|
||||
@ -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
|
||||
// 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));
|
||||
|
||||
//
|
||||
// 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.)
|
||||
//
|
||||
untreated_list_t cur_untreated_list;
|
||||
|
||||
@ -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()){
|
||||
set_timespec_to_stat(st, stat_time_type::CTIME, ft_ctime);
|
||||
|
||||
@ -90,7 +90,7 @@ class FileTimes
|
||||
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 RefrectFileTimes(struct stat& st) const;
|
||||
void ReflectFileTimes(struct stat& st) const;
|
||||
|
||||
// Set value
|
||||
void SetCTime(struct timespec time) { SetTime(stat_time_type::CTIME, time); }
|
||||
|
||||
@ -3283,7 +3283,7 @@ static int s3fs_release(const char* _path, struct fuse_file_info* fi)
|
||||
int result;
|
||||
if(ent->IsModified()){
|
||||
if(0 != (result = ent->Flush(static_cast<int>(fi->fh), false))){
|
||||
S3FS_PRN_ERR("failed to upload file contentsfor pseudo_fd(%llu) / path(%s) by result(%d)", (unsigned long long)(fi->fh), path, result);
|
||||
S3FS_PRN_ERR("failed to upload file contents for pseudo_fd(%llu) / path(%s) by result(%d)", (unsigned long long)(fi->fh), path, result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
|
||||
// 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__
|
||||
return true;
|
||||
#else
|
||||
@ -5993,7 +5993,7 @@ int main(int argc, char* argv[])
|
||||
// Free disk space
|
||||
if(-1 != fake_diskfree_size){
|
||||
// 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);
|
||||
|
||||
}else{
|
||||
@ -6012,7 +6012,7 @@ int main(int argc, char* argv[])
|
||||
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())){
|
||||
// Try to clean cache dir and retry
|
||||
S3FS_PRN_WARN("Not enough disk space for s3fs, try to clean cache dir");
|
||||
|
||||
@ -93,9 +93,9 @@ bool FreeS3fsCredential(char** pperrstr)
|
||||
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){
|
||||
*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){
|
||||
*ppaccess_key_id = nullptr;
|
||||
}
|
||||
if(ppserect_access_key){
|
||||
*ppserect_access_key = nullptr;
|
||||
if(ppsecret_access_key){
|
||||
*ppsecret_access_key = nullptr;
|
||||
}
|
||||
if(ppaccess_token){
|
||||
*ppaccess_token = nullptr;
|
||||
@ -788,7 +788,7 @@ bool S3fsCred::ReadS3fsPasswdFile()
|
||||
if(-1 == result){
|
||||
return false;
|
||||
}else if(1 == result){
|
||||
// found ascess(secret) keys
|
||||
// found access(secret) keys
|
||||
if(!SetAccessKey(access_key_id.c_str(), secret_access_key.c_str())){
|
||||
S3FS_PRN_EXIT("failed to set access key/secret key.");
|
||||
return false;
|
||||
@ -1314,26 +1314,26 @@ bool S3fsCred::UpdateExtCredentials()
|
||||
}
|
||||
|
||||
char* paccess_key_id = nullptr;
|
||||
char* pserect_access_key = nullptr;
|
||||
char* psecret_access_key = nullptr;
|
||||
char* paccess_token = nullptr;
|
||||
char* perrstr = nullptr;
|
||||
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){
|
||||
// error occurred
|
||||
S3FS_PRN_ERR("Could not update credential by \"UpdateS3fsCredential\" function : %s", perrstr ? perrstr : "unknown");
|
||||
|
||||
// cppcheck-suppress unmatchedSuppression
|
||||
// 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
|
||||
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;
|
||||
}else{
|
||||
// succeed updating
|
||||
AWSAccessKeyId = paccess_key_id;
|
||||
AWSSecretAccessKey = pserect_access_key;
|
||||
AWSSecretAccessKey = psecret_access_key;
|
||||
AWSAccessToken = paccess_token;
|
||||
AWSAccessTokenExpire = token_expire;
|
||||
}
|
||||
@ -1346,8 +1346,8 @@ bool S3fsCred::UpdateExtCredentials()
|
||||
}
|
||||
// cppcheck-suppress unmatchedSuppression
|
||||
// cppcheck-suppress knownConditionTrueFalse
|
||||
if(pserect_access_key){
|
||||
free(pserect_access_key);
|
||||
if(psecret_access_key){
|
||||
free(psecret_access_key);
|
||||
}
|
||||
// cppcheck-suppress unmatchedSuppression
|
||||
// cppcheck-suppress knownConditionTrueFalse
|
||||
|
||||
@ -88,8 +88,8 @@ extern bool FreeS3fsCredential(char** pperrstr) S3FS_FUNCATTR_WEAK;
|
||||
//
|
||||
// char** ppaccess_key_id : Allocate and set "Access Key ID" string
|
||||
// area to *ppaccess_key_id.
|
||||
// char** ppserect_access_key : Allocate and set "Access Secret Key ID"
|
||||
// string area to *ppserect_access_key.
|
||||
// char** ppsecret_access_key : Allocate and set "Access Secret Key ID"
|
||||
// string area to *ppsecret_access_key.
|
||||
// char** ppaccess_token : Allocate and set "Token" string area to
|
||||
// *ppaccess_token.
|
||||
// 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
|
||||
// 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
|
||||
@ -126,9 +126,9 @@ typedef bool (*fp_InitS3fsCredential)(const char* popts, 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"
|
||||
|
||||
|
||||
@ -158,11 +158,11 @@ void* multi_head_req_threadworker(S3fsCurl& s3fscurl, void* arg)
|
||||
}
|
||||
|
||||
}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;
|
||||
|
||||
}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;
|
||||
|
||||
}else{
|
||||
@ -487,11 +487,11 @@ void* multipart_put_head_req_threadworker(S3fsCurl& s3fscurl, void* arg)
|
||||
}
|
||||
|
||||
}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;
|
||||
|
||||
}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;
|
||||
|
||||
}else{
|
||||
@ -601,11 +601,11 @@ void* parallel_get_object_req_threadworker(S3fsCurl& s3fscurl, void* arg)
|
||||
}
|
||||
|
||||
}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;
|
||||
|
||||
}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;
|
||||
|
||||
}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)
|
||||
{
|
||||
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;
|
||||
int result = 0;
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
#define S3FS_S3FS_XML_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 <string>
|
||||
#include <array>
|
||||
|
||||
@ -173,7 +173,7 @@ void ThreadPoolMan::Worker(ThreadPoolMan* psingleton, std::promise<int> promise)
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
int main(int argc, const char *argv[])
|
||||
{
|
||||
if(argc != 2){
|
||||
fprintf(stderr, "[ERROR] Wrong paraemters\n");
|
||||
fprintf(stderr, "[ERROR] Wrong parameters\n");
|
||||
fprintf(stdout, "[Usage] cr_filename <base file path>\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
int main(int argc, const char *argv[])
|
||||
{
|
||||
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");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user