diff options
| author | vmallika <vmallika@redhat.com> | 2015-01-30 12:10:38 +0530 |
|---|---|---|
| committer | Niels de Vos <ndevos@redhat.com> | 2015-02-23 04:56:47 -0800 |
| commit | 6518a79634ba505ed06e930907ebf956f8784b7d (patch) | |
| tree | 55f52692b180745ab40730db505636a065b4258f /xlators/features/quota/src/quota.h | |
| parent | b6c37bd9954fb3b7aee79dbe453f875b70a03e71 (diff) | |
features/quota: Send the immediate parent with limit in quota statfs
adjustment
This is a backport of http://review.gluster.org/#/c/7330
> Problem:
> Assume the directory structure /quota_limit_dir/subdir and
> quota_limit_dir is
> set with some limit. When quota-deem-statfs is enabled the output of
> 'df /quota_limit_dir' would display quota modified values wrt to
> quota_limit_dir where as 'df /quota_limit_subdir/subdir' would display
> the quota modified values wrt volume root (/).
>
> This behaviour is not expected since, when mounted with subdirectory
> admin doesn't want users to know information above the subdirectory mounted.
>
> Solution:
> Any subdirectory within a quota_limit_dir would show the modified values
> as in the /quota_limit_dir. It searches for the nearest parent that has quota
> limit set and modifies the statvfs wrt that.
>
> Change-Id: Ie10fae8999bddbb766b1dbeb881723ed80dce688
> BUG: 1080296
> Signed-off-by: Varun Shastry <vshastry@redhat.com>
> Reviewed-on: http://review.gluster.org/7330
> Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
> Tested-by: Raghavendra G <rgowdapp@redhat.com>
Change-Id: I5232a82da20d3dfd48303ba2748b86cfc96ff864
BUG: 1115197
Signed-off-by: vmallika <vmallika@redhat.com>
Reviewed-on: http://review.gluster.org/9510
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Diffstat (limited to 'xlators/features/quota/src/quota.h')
| -rw-r--r-- | xlators/features/quota/src/quota.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/xlators/features/quota/src/quota.h b/xlators/features/quota/src/quota.h index 84c3257feec..5a4bcb2b1e0 100644 --- a/xlators/features/quota/src/quota.h +++ b/xlators/features/quota/src/quota.h @@ -80,6 +80,23 @@ } \ } while (0); +#define QUOTA_STACK_WIND_TAIL(frame, params...) \ + do { \ + quota_local_t *_local = NULL; \ + xlator_t *_this = NULL; \ + \ + if (frame) { \ + _local = frame->local; \ + _this = frame->this; \ + frame->local = NULL; \ + } \ + \ + STACK_WIND_TAIL (frame, params); \ + \ + if (_local) \ + quota_local_cleanup (_this, _local); \ + } while (0) + #define QUOTA_STACK_UNWIND(fop, frame, params...) \ do { \ quota_local_t *_local = NULL; \ @@ -186,6 +203,7 @@ struct quota_local { int64_t space_available; quota_ancestry_built_t ancestry_cbk; void *ancestry_data; + dict_t *xdata; }; typedef struct quota_local quota_local_t; |
