diff options
Diffstat (limited to 'xlators/storage/posix/src/posix-handle.c')
| -rw-r--r-- | xlators/storage/posix/src/posix-handle.c | 17 | 
1 files changed, 17 insertions, 0 deletions
diff --git a/xlators/storage/posix/src/posix-handle.c b/xlators/storage/posix/src/posix-handle.c index b0693324d..9b6df445e 100644 --- a/xlators/storage/posix/src/posix-handle.c +++ b/xlators/storage/posix/src/posix-handle.c @@ -619,3 +619,20 @@ posix_handle_unset (xlator_t *this, uuid_t gfid, const char *basename)          return ret;  } + +int +posix_create_link_if_gfid_exists (xlator_t *this, uuid_t gfid, +                                  char *real_path) +{ +        int ret = -1; +        struct stat stbuf = {0,}; +        char *newpath = NULL; + +        MAKE_HANDLE_PATH (newpath, this, gfid, NULL); +        ret = lstat (newpath, &stbuf); +        if (!ret) { +                ret = link (newpath, real_path); +        } + +        return ret; +}  | 
