Browse Source
Merge pull request #1085 from trapexit/symlinkify
Fix setting of stat vars for symlinkify
pull/1087/head
trapexit
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
10 additions and
4 deletions
-
src/fuse_getattr.cpp
-
src/symlinkify.hpp
|
|
@ -139,7 +139,7 @@ namespace l |
|
|
|
return -errno; |
|
|
|
|
|
|
|
if(symlinkify_ && symlinkify::can_be_symlink(*st_,symlinkify_timeout_)) |
|
|
|
st_->st_mode = symlinkify::convert(st_->st_mode); |
|
|
|
symlinkify::convert(fullpath,st_); |
|
|
|
|
|
|
|
fs::inode::calc(fusepath_,st_); |
|
|
|
|
|
|
|
|
|
@ -21,6 +21,9 @@ |
|
|
|
#include <sys/stat.h>
|
|
|
|
#include <time.h>
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
|
|
|
|
namespace symlinkify |
|
|
|
{ |
|
|
|
static |
|
|
@ -41,9 +44,12 @@ namespace symlinkify |
|
|
|
|
|
|
|
static |
|
|
|
inline |
|
|
|
mode_t |
|
|
|
convert(const mode_t mode_) |
|
|
|
void |
|
|
|
convert(const std::string &target_, |
|
|
|
struct stat *st_) |
|
|
|
{ |
|
|
|
return ((mode_ & ~S_IFMT) | S_IFLNK); |
|
|
|
st_->st_mode = (((st_->st_mode & ~S_IFMT) | S_IFLNK) | 0777); |
|
|
|
st_->st_size = target_.size(); |
|
|
|
st_->st_blocks = 0; |
|
|
|
} |
|
|
|
} |