introduce fgetattr operation
This commit is contained in:
parent
88e3a2e2b4
commit
e0b536590c
|
@ -172,6 +172,11 @@ int wrap_ftruncate(const char *path, off_t offset, struct fuse_file_info *file_i
|
|||
return SMTPFileSystem::instance()->ftruncate(path, offset, file_info);
|
||||
}
|
||||
|
||||
int wrap_fgetattr(const char *path, struct stat *buf, struct fuse_file_info *file_info)
|
||||
{
|
||||
return SMTPFileSystem::instance()->fgetattr(path, buf, file_info);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
std::unique_ptr<SMTPFileSystem> SMTPFileSystem::s_instance;
|
||||
|
@ -223,6 +228,7 @@ SMTPFileSystem::SMTPFileSystem():
|
|||
m_fuse_operations.access = nullptr;
|
||||
m_fuse_operations.create = wrap_create;
|
||||
m_fuse_operations.ftruncate = wrap_ftruncate;
|
||||
m_fuse_operations.fgetattr = wrap_fgetattr;
|
||||
}
|
||||
|
||||
SMTPFileSystem::~SMTPFileSystem()
|
||||
|
@ -634,6 +640,13 @@ int SMTPFileSystem::ftruncate(const char *path, off_t offset,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int SMTPFileSystem::fgetattr(const char *path, struct stat *buf, fuse_file_info *file_info)
|
||||
{
|
||||
if (::fstat(file_info->fh, buf) != 0)
|
||||
return -errno;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *SMTPFileSystem::expandTmpDir(char *tmp)
|
||||
{
|
||||
if (!tmp) {
|
||||
|
|
|
@ -102,6 +102,7 @@ public:
|
|||
int releasedir(const char *path, struct fuse_file_info *file_info);
|
||||
int fsyncdir(const char *path, int datasync, struct fuse_file_info *file_info);
|
||||
int ftruncate(const char *path, off_t offset, struct fuse_file_info *file_info);
|
||||
int fgetattr(const char *path, struct stat *buf, struct fuse_file_info *file_info);
|
||||
void* init(struct fuse_conn_info *conn);
|
||||
int create(const char *path, mode_t mode, fuse_file_info *file_info);
|
||||
|
||||
|
|
Loading…
Reference in New Issue