diff options
-rw-r--r-- | xlators/features/marker/src/marker.c | 6 | ||||
-rw-r--r-- | xlators/features/marker/src/marker.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/xlators/features/marker/src/marker.c b/xlators/features/marker/src/marker.c index 862c0a464..8ab66f46e 100644 --- a/xlators/features/marker/src/marker.c +++ b/xlators/features/marker/src/marker.c @@ -1267,6 +1267,10 @@ marker_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this, priv = this->private; + if ((priv->feature_enabled & GF_QUOTA) && (S_ISREG (local->mode))) { + inspect_file_xattr (this, &local->loc, NULL, *buf); + } + if (priv->feature_enabled & GF_XTIME) marker_xtime_update_marks (this, local); out: @@ -1294,6 +1298,8 @@ marker_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, ret = loc_copy (&local->loc, loc); + local->mode = mode; + if (ret == -1) goto err; wind: diff --git a/xlators/features/marker/src/marker.h b/xlators/features/marker/src/marker.h index 70b5e8567..ea1f5cc0a 100644 --- a/xlators/features/marker/src/marker.h +++ b/xlators/features/marker/src/marker.h @@ -68,6 +68,7 @@ struct marker_local{ int32_t ref; int32_t ia_nlink; gf_lock_t lock; + mode_t mode; struct marker_local *oplocal; }; typedef struct marker_local marker_local_t; |