summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/performance/stat-prefetch/src/stat-prefetch.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/xlators/performance/stat-prefetch/src/stat-prefetch.c b/xlators/performance/stat-prefetch/src/stat-prefetch.c
index 827a9f99d28..a760e97a9a5 100644
--- a/xlators/performance/stat-prefetch/src/stat-prefetch.c
+++ b/xlators/performance/stat-prefetch/src/stat-prefetch.c
@@ -2189,9 +2189,11 @@ sp_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc)
this, out);
GF_VALIDATE_OR_GOTO (this->name, newloc, out);
GF_VALIDATE_OR_GOTO (this->name, newloc->path, out);
- GF_VALIDATE_OR_GOTO (this->name, newloc->name, out);
+ if (uuid_is_null (newloc->gfid))
+ GF_VALIDATE_OR_GOTO (this->name, newloc->name, out);
GF_VALIDATE_OR_GOTO (this->name, newloc->inode, out);
- GF_VALIDATE_OR_GOTO (this->name, oldloc->name, out);
+ if (uuid_is_null (oldloc->gfid))
+ GF_VALIDATE_OR_GOTO (this->name, oldloc->name, out);
ret = sp_cache_remove_parent_entry (frame, this, newloc->parent->table,
(char *)newloc->path);
@@ -2292,7 +2294,8 @@ sp_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset)
GF_VALIDATE_OR_GOTO (frame->this ? frame->this->name : "stat-prefetch",
this, out);
GF_VALIDATE_OR_GOTO (this->name, loc, out);
- GF_VALIDATE_OR_GOTO (this->name, loc->name, out);
+ if (uuid_is_null (loc->gfid))
+ GF_VALIDATE_OR_GOTO (this->name, loc->name, out);
sp_remove_caches_from_all_fds_opened (this, loc->parent,
(char *)loc->name);
@@ -2432,7 +2435,8 @@ sp_setattr (call_frame_t *frame, xlator_t *this,
GF_VALIDATE_OR_GOTO (frame->this ? frame->this->name : "stat-prefetch",
this, out);
GF_VALIDATE_OR_GOTO (this->name, loc, out);
- GF_VALIDATE_OR_GOTO (this->name, loc->name, out);
+ if (uuid_is_null (loc->gfid))
+ GF_VALIDATE_OR_GOTO (this->name, loc->name, out);
sp_remove_caches_from_all_fds_opened (this, loc->parent,
(char *)loc->name);
@@ -2531,7 +2535,8 @@ sp_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size)
GF_ASSERT (frame);
GF_VALIDATE_OR_GOTO ("stat-prefetch", this, out);
GF_VALIDATE_OR_GOTO (this->name, loc, out);
- GF_VALIDATE_OR_GOTO (this->name, loc->name, out);
+ if (uuid_is_null (loc->gfid))
+ GF_VALIDATE_OR_GOTO (this->name, loc->name, out);
sp_remove_caches_from_all_fds_opened (this, loc->parent,
(char *)loc->name);