summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/cluster/dht/src/tier-common.c6
-rw-r--r--xlators/storage/posix/src/posix.c3
2 files changed, 7 insertions, 2 deletions
diff --git a/xlators/cluster/dht/src/tier-common.c b/xlators/cluster/dht/src/tier-common.c
index 40c8c9e965d..8de21df24ef 100644
--- a/xlators/cluster/dht/src/tier-common.c
+++ b/xlators/cluster/dht/src/tier-common.c
@@ -537,12 +537,16 @@ tier_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, int xflag,
}
local->flags = xflag;
- if (hashed_subvol == cached_subvol) {
+ if (IA_ISREG (loc->inode->ia_type) &&
+ (hashed_subvol == cached_subvol)) {
/*
* File resides in cold tier. We need to stat
* the file to see if it is being promoted.
* If yes we need to delete the destination
* file as well.
+ *
+ * Currently we are doing this check only for
+ * regular files.
*/
xdata = xdata ? dict_ref (xdata) : dict_new ();
if (xdata) {
diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c
index a3e0aa26bf8..272d08f8654 100644
--- a/xlators/storage/posix/src/posix.c
+++ b/xlators/storage/posix/src/posix.c
@@ -1749,7 +1749,8 @@ posix_unlink (call_frame_t *frame, xlator_t *this,
goto out;
}
- if (xdata && dict_get (xdata, DHT_IATT_IN_XDATA_KEY)) {
+ if (IA_ISREG (loc->inode->ia_type) &&
+ xdata && dict_get (xdata, DHT_IATT_IN_XDATA_KEY)) {
fdstat_requested = 1;
}