| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
upstream_on_quota
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Details:
--------
In init, we should create an rpc only when quota is enabled
on the volume.
In reconfigure, we should reuse the enforcer rpc, if any, on
enable. On disable, we should disable the enforcer rpc, if present.
Change-Id: I03e9f7b2b6dfecd1e8d97f0fb2df3db717e4ad50
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit makes the following changes to the source.
i. Updating hard link count for parent dir should be configurable. Starts
working only when the quota is enabled.
ii. Heal nlinks of pgfid xattr in lookup.
iii. Start quota crawler without readdirp optimization.
iv. Rename: Handle the internal fops properly. Use GLUSTERFS_INTERNAL_FOP_KEY
for representing the internal fops.
Change-Id: Ic6586a82a8bb6eb4329eb6cbd5430da11418e753
BUG: 969461
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Signed-off-by: Varun Shastry <vshastry@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code adjusts the statvfs values if the quota-deem-statfs option is enabled.
i. Adjust statvfs based on limit configured on root.
ii. If limit is set on the inode passed, use size/limits on that inode to
populate statvfs. Otherwise, use size/limits configured on root.
iii. Upon statvfs, update the ctx->size on the inode.
iv. Don't let DHT aggregate, instead take the maximum of the usages from the
subvols of the DHT, since each of it contains the complete information.
Change-Id: Id43c5432be56b70c22c040a9b7f674ddddc9f930
BUG: 969461
Signed-off-by: Varun Shastry <vshastry@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Current code compared only the first strlen (xlator_name) characters
with volume_uuid. This can result in picking up a wrong subvol which
has the first strlen (xlator_name) characters same as volume_uuid.
Change-Id: I81bf251c0603ccfe2bd60b75d2e040f13b135669
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This patch addresses the issues we might run into in the time-window
between crawler starts to build quota state and the crawler actually
reaches the inode. In this time-window, quota is enabled but context
of the inode in question is not populated.
Change-Id: I10ba66d9aa3680e6c46f8f599e77fc39cc9601c5
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
|
|
|
|
|
|
| |
Original-author: Krishnan Parthasarathi <kparthas@redhat.com>
Change-Id: I07797fb5402dba89f81a7d2b8b20a11db74f69c9
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
|
|\
| |
| |
| | |
upstream_on_quota
|
| |
| |
| |
| |
| | |
Change-Id: Ibe7de155bb5be21ab2da2beed75eec86e9a2f001
Signed-off-by: Varun Shastry <vshastry@redhat.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I60f93727f04f1d16edfc7efdcb4e1c501ec760fa
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Its valid that directories on which limit is not set, to not have
inode ctx NULL, since it servers no purpose.
Change-Id: I0e31de7ffbfcb65cddf590833756ff11bab64434
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/11830
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch also fixes a potential race-condition while accessing
dentry list stored in inode context while updating size and enforcing
limits.
Change-Id: I76c85fe782f6a53d74b453dd7dcb893e33003620
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We used to calculate delta as,
delta = (postbuf->ia_blocks - prebuf->ia_blocks) * 512;
However this can result in some blocks getting accounted twice in a
multithreaded environment. This is because at storage/posix, we dont
do,
* stat (file, &prebuf)
* write ()
* stat (file, &postbuf)
as a single atomic operation. So, stat in step 3, can account for some
blocks which are allocated as part of a parallel write.
One of the possible fixes is to make these three operations by holding
a lock. However, this is too costly operation and hence quota relies
on size of the vector being written (with the check that if post and
pre block count are same, entire write was accomodated in existing
blocks). This seems to be acceptable since we don't solely rely on
size_updation by quota-enforcer (we do fetch aggregated size from
quotad after a timeout).
Change-Id: Ifdc8174c77058322aca8f589f7558641b73f0bc1
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/11829
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Ic31b77192d7cc21462f6b0eeee2938109681ca55
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Also removes QUOTA_UPDATE_USAGE_KEY
Change-Id: I71080eda562f8f4d451c4911f833de9048031da9
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I49798f8b84a260e72bed722e08af6a194005dec1
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I1aa76e6155876e0dcd996bf037ad76cbb17a0ac1
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I8a224a332777d9e2506d6211606f10149ea537e0
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A getxattr on key GET_ANCESTRY_DENTRY_KEY to storage/posix would
return a list of direntries which can be used to construct inode
contexts of individual translators. The result of getxattr on this key
can be viewed as similar to readdirp_cbk with the difference that the
dentries returned here represent various paths from that inode till
root rather than the children of a directory.
This patch also modifies marker/quota and enforcer to utilize this
key.
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Change-Id: I7132e7d56f2fac0f8749f51227d9f2ef27f9d354
BUG: 969461
|
| |
| |
| |
| |
| |
| | |
Change-Id: I960cf42c3cacecb9d1cdb258e063b8691a16ca20
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
a parent cannot be found for an inode.
Quota enforcement requires checking of limits on all ancestors till
root. With anonymous fds and nameless lookups, all the ancestors may
not be populated in inode table. A getxattr on key GET_PATH_KEY would
make storage/posix to construct the dentry chain till root.
Change-Id: I1e2172c28a9c7eb918fe41b63b30209733df148c
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
distribute xlator does the below operations as internal fops for rename
FOP: rename a -> b
link b
unlink a
distribute sends the above link and unlink fops as internal fops. Quota
xlator upon seeing link and unlink as internal fops does not add/remove
the entries to/from the inode context. So when unlink comes, even though
the fop is internal fop, go through the list of names in the context and
if the name of the entry being unlinked is found in the list, then remove
it from the list.
Change-Id: I9a57e3b9c295f7fce6a9e952a24b59897e856e98
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
|
|
|
|
|
| |
Change-Id: I1cb7eb190f52f6eba015c6fc25621ee7a5a05c26
Signed-off-by: Vijay Bellur <vbellur@redhat.com>
|
|\ |
|
| |
| |
| |
| |
| | |
Change-Id: I510a3f068ab141a707fd6535d51d4b3fa37930f0
Signed-off-by: Vijay Bellur <vbellur@redhat.com>
|
|/
|
|
|
|
|
|
| |
Also handled reconfigure event for quota options such as
soft-timeout, hard-timeout and alert-time
Change-Id: I5dfdb76901d4f3af824b30838318268e5edcee34
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
|
|
|
|
|
| |
Change-Id: If1773603bcc5b393796e96439929e7fd2867127a
Signed-off-by: Vijay Bellur <vbellur@redhat.com>
|
|
|
|
|
|
| |
Original-author: Raghavendra Gowdappa <rgowdapp@redhat.com>
Change-Id: I245f1914a38332b8e5e7f1581c9437cf5a9ab6f0
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
|
|
|
|
|
|
|
|
| |
- dumps members of quota_priv_t.
- also added validation count to keep track of number of validations done.
Change-Id: I998fcccacf4bd7c61ead9ca9a489e0dc0e73763a
Signed-off-by: Vijay Bellur <vbellur@redhat.com>
|
|
|
|
|
|
|
|
| |
Also changed default soft-limit percentage to 80% of
configured quota limit.
Change-Id: Ia07b569216189a6e3bedb5cdbf8ffeb9f7739444
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
A few little hacks to set the volume id on the quota server and
a mapping option on quotad to map the volume name to the uuid passed
via the lookup request.
Change-Id: Ic151acb18ed29d2ee4ae5d1bc6841ae4a4de176a
Original-author: Brian Foster <bfoster@redhat.com>
Signed-off-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following are the compilation warnings I encountered:
-----------------------------------
In file included from quota.c:12:0:
quota.h:190:1: error: 'packed' attribute ignored [-Werror=attributes]
quota.c: In function 'quota_lookup_cbk':
quota.c:618:23: error: assignment from incompatible pointer type [-Werror]
quota.c:637:53: error: 'soft_lim' undeclared (first use in this function)
quota.c:637:53: note: each undeclared identifier is reported only once for each function it appears in
quota.c:608:28: error: unused variable 'size' [-Werror=unused-variable]
cc1: all warnings being treated as errors
-----------------------------------
Change-Id: I7a09e654a9cc064a423a5f8362f2a9c6abbc7edb
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
* send size query to quotad only if limit is set on that inode.
* don't check for loc->parent while querying size from quotad, since
its a nameless lookup
Change-Id: I10dc2f9d1e40875382040b53cb4ee5f6d9a27133
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
It was assumed that hard and soft limits are stored as two different
xattrs on disk. However they are stored as two members of a structure
which is stored as a value for a single key.
Change-Id: I947fa5c375209c31fe1511bda0d5cb0e249af9ba
BUG: 969461
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
|
|
|
|
|
|
|
| |
Original-author: Vijay Bellur <vbellur@redhat.com>
Change-Id: Iea21ef1cdfb78c79482ad02f81734516b7818714
Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Don't block the gluster internal processes like rebalance, gsyncd, self heal
etc from the disk quotas and the xattrs setting.
Solution: Allow all the clients with negative PID.
Change-Id: Iaeaa8096e00d48b2a4c3f5df61d103da0b3d6598
|
|
|
|
| |
Change-Id: Ie0b3af8b52f2d909c61094bdcaccfd724ff4ecc0
|
|
|
|
| |
Change-Id: I38077c7adc497b314f4037cbbb116458a26ed589
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* hard and soft limits are persisted in xattrs of the
inode. Associating limits with inode instead of maintaining as a
global list helps us to scale better.
* quotad-aggregator acts as a special client to provide cluster view
through an rpc program. Quota enforcer loaded on brick uses this to get
aggregated directory sizes. Aggregated sizes are cached for a
timeout period in in-memory inode contexts.
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Change-Id: I2ab508d9d4fe224bc1d8cf01cf2b7969dd4200bb
BUG: 969461
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Old implementation
* Client side implementation of quota
- Not secure
- Increased traffic in updating the ctx
New Implementation
* 2 stages of quota implementation is done: Soft and hard quota
Upon reaching soft quota limit on the directory it logs/alerts in the quota
daemon log (ie DEFAULT_LOG_DIR/quotad.log) and no more writes allowed after
hard quota limit. After reaching the soft-limit the daemon alerts the
user/admin repeatively for every 'alert-time', which is configurable.
* Quota is moved to server-side.
There will be 2 quota xlators
i. Quota Server
It takes care of the enforcing the quota and maintains the context
specific to the brick. Since this doesn't have the complete picture of
the cluster, cluster wide usage is updated from the quota daemon. This
updated context is saved and used for the enforcement.
It updates its context by searching the QUOTA_UPDATE_KEY from the dict
in the setxattr call, and is updated from nowhere else.
The quota is always loaded in the server graph and is by passed if the
feature is not enabled.
Options specific to quota-server:
server-quota - Specifies whether the features is on/off. It is used
to by pass the quota if turned off.
deem-statfs - If set to on, it takes quota limits into
consideration while estimating fs size. (df command)
ii. Quota Daemon
This is the new xlator introduced with this patch. Its the
*gluster client* process with no mount point, started upon enabling
quota or restarting the volume. This is a single process for all the
volumes in the cluster. Its volfile stored in
GLUSTERD_DEFAULT_WORKI_DIR/quotad/quotad.vol.
It queries for the sizes on all the bricks, aggregates the size and
sends back the updated size, periodically. The timeout between
successive updation is configurable and typically/by default more for
below-soft-quota usage and less for above-soft-quota usage. It
maintains the timeout inside the limit structure based on the usage;
below soft limit and above soft limit.
There will be thread running per volume which iterates through the list
and decides whether the size to be queried in the current iteration
based on its timeout. It takes the next iteration time taking the least
of the timeouts in the list of entries.
Maintains a separate inode table for each volume in the quotad. In the
first iteration it builds the table for quota-dirs (dirs on which limit
is set) and its components.
Options specific to quotad:
hard-timeout - Timeout for updation of usage to the quota-server
when the usage is crosses the soft-limit.
soft-timeout - Timeout for the updation of usage to the
quota-server when the usage is below soft-limit.
alert-time - Frequency of logging after the usage reached
soft limit.
Options common to both:
default-soft-limit - This is used when individual paths are not
configured with soft-limit and default value of
this option is 90% of the hard-limit.
limit-set - String containing all the limits.
Thus in the current implementation we'll have 2 quota xlators: one in server
graph and one in trusted client (quota daemon) of which the sole
purpose will be to aggregate the quota size xattrs from all the bricks and
send the same to server quota xlator.
* Changes in glusterd and CLI
A single volfile is created for all the volumes, similar to nfs volfile.
All files related to quota client (volfile, pid etc) are stored in
GLUSTERD_DEFAULT_WORK_DIR/quotad/.
The new pattern of the quota limit stores in
limit-set = <single-dir-limit>[,<single-dir-limit>]
single-dir-limit = <abs-path>:<hard-limit>[:<soft-limit-in-percent>]
It also introduces new options:
volume quota <VOLNAME> {enable|disable|list [<path> ...]|remove <path>| default-soft-limit <percent>} |
volume quota <VOLNAME> {limit-usage <path> <size> |soft-limit <path> <percent>} |
volume quota <VOLNAME> {alert-time|soft-timeout|hard-timeout} {<time>}
Credit:
Raghavendra Bhat <rabhat@redhat.com>
Varun Shastry <vshastry@redhat.com>
Shishir Gowda <sgowda@redhat.com>
Kruthika Dhananjay <kdhananj@redhat.com>
Brian Foster <bfoster@redhat.com>
Krishnan Parthasarathi <kparthas@redhat.com>
Change-Id: I16ec5be0c2faaf42b14034b9ccaf17796adef082
BUG: 969461
Signed-off-by: Varun Shastry <vshastry@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement support for the fallocate file operation. fallocate
allocates blocks for a particular inode such that future writes
to the associated region of the file are guaranteed not to fail
with ENOSPC.
This patch adds fallocate support to the following areas:
- libglusterfs
- mount/fuse
- io-stats
- performance/md-cache,open-behind
- quota
- cluster/afr,dht,stripe
- rpc/xdr
- protocol/client,server
- io-threads
- marker
- storage/posix
- libgfapi
BUG: 949242
Change-Id: Ice8e61351f9d6115c5df68768bc844abbf0ce8bd
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-on: http://review.gluster.org/4969
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds an option, features.quota-deem-statfs (default off) to consider the
quota limits while calculating the volume stats.
Eg: Backend is of size 10GB and limit set on / is 5GB. If the option is off
df show actual size to be 10GB and when it is on df shows 5GB.
Change-Id: Ib30733bb69afecce1dea9d0491af89d551d214cc
BUG: 905425
Signed-off-by: Varun Shastry <vshastry@redhat.com>
Reviewed-on: http://review.gluster.org/4511
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Change-Id: I1c9541058c7d07786539a3266ca125a6a15287d8
BUG: 859835
Signed-off-by: Anand Avati <avati@redhat.com>
Original-author: Kacper Kowalik (Xarthisius) <xarthisius.kk@gmail.com>
Signed-off-by: Kacper Kowalik (Xarthisius) <xarthisius.kk@gmail.com>
Reviewed-on: http://review.gluster.org/3967
Tested-by: Gluster Build System <jenkins@build.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PROBLEM:
The first colon in the limit string is used to separate the path and the
limit-value. The ':' in the path was the source of problem.
FIX:
Search for the last colon and separate based on the same.
Added regression test.
TEST:
Create and set quota on directories with names containing ':' in start, middle
and end.
Change-Id: I363c8ad4cbfd02c23fc73974bef9aa8bc362d29c
BUG: 848251
Signed-off-by: Varun Shastry <vshastry@redhat.com>
Reviewed-on: http://review.gluster.org/4137
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Automake provides a separate variable for preprocessor flags
(*_CPPFLAGS). They are already uses in a few places, so make it
consistent and use it everywhere. Note that cflags obtained from
pkg-config often are cppflags, which is why LIBXML2_CFLAGS moves with
into AM_CPPFLAGS, for example.
Change-Id: I15feed1d18b2ca497371271c4b5876d5ec6289dd
BUG: 862082
Original-author: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/4029
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CFLAGS
libtool will automatically add "-fPIC" to the compiler command line as
needed, so there is no need to specify it separately.
"-shared" is normally a linker flag and has an odd effect when used with
libtool --mode=compile, namely that it inhibits production of static
objects. For that however, using AC_DISABLE_STATIC is a lot simpler.
Change-Id: Ic4cba0fad18ffd985cf07f8d6951a976ae59a48f
BUG: 862082
Original-author: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/4027
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The "-nostartfiles" is a discouraged option and is documented to
potentially result in undesired behavior. Since I see no reason why it
should be in glusterfs, remove it.
Change-Id: I56f2b08874516ebad91447b2583ca2fb776bb7ab
BUG: 862082
Original-author: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/4018
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some -D flags are present in all files, so collect them.
This adds -D${GF_HOST_OS} to some compiler command lines,
but this should not be a problem.
Change-Id: I1aeb346143d4984c9cc4f2750c465ce09af1e6ca
BUG: 862082
Original-author: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/4013
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
QUOTA_STACK_UNWIND does not check if local is NULL before mem_put.
This leads to a callingfn log for every setxattr in quota.
Fix:
Made sure the mem_put happens only on non-null local in quota.
Additional changes:
Removed unused QUOTA_STACK_DESTROY macro.
Tests:
Peformed setfattr on the mount point and the Invalid argument
logs don't come anymore. Checked that the change does not introduce
any memory leak in quota.
Change-Id: Ie4534c7af0fff80e35d8510311055f930262594f
BUG: 856541
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.org/3936
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
License message changed for server-side, dual license GPLV2 and LGPLv3+.
Change-Id: Ia9e53061b9d2df3b3ef3bc9778dceff77db46a09
BUG: 852318
Signed-off-by: Varun Shastry <vshastry@redhat.com>
Reviewed-on: http://review.gluster.org/3940
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
|