<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/features/quota, branch v3.8dev</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>features/quota: Fixing Logically dead code</title>
<updated>2015-04-10T06:37:00+00:00</updated>
<author>
<name>arao</name>
<email>arao@redhat.com</email>
</author>
<published>2015-02-12T07:19:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=2b9a4799ef6caaeeca438c019f4a1f6cf423324a'/>
<id>2b9a4799ef6caaeeca438c019f4a1f6cf423324a</id>
<content type='text'>
CID: 1134007
The code never reaches the condition check on retlen in
ret label, hence removing the dead code.

Change-Id: Ia0108b69489bb78a2561ff8da6e00685f472ae82
BUG: 789278
Signed-off-by: arao &lt;arao@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9644
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CID: 1134007
The code never reaches the condition check on retlen in
ret label, hence removing the dead code.

Change-Id: Ia0108b69489bb78a2561ff8da6e00685f472ae82
BUG: 789278
Signed-off-by: arao &lt;arao@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9644
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid conflict between contrib/uuid and system uuid</title>
<updated>2015-04-04T17:48:35+00:00</updated>
<author>
<name>Emmanuel Dreyfus</name>
<email>manu@netbsd.org</email>
</author>
<published>2015-04-02T13:51:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=28397cae4102ac3f08576ebaf071ad92683097e8'/>
<id>28397cae4102ac3f08576ebaf071ad92683097e8</id>
<content type='text'>
glusterfs relies on Linux uuid implementation, which
API is incompatible with most other systems's uuid. As
a result, libglusterfs has to embed contrib/uuid,
which is the Linux implementation, on non Linux systems.
This implementation is incompatible with systtem's
built in, but the symbols have the same names.

Usually this is not a problem because when we link
with -lglusterfs, libc's symbols are trumped. However
there is a problem when a program not linked with
-lglusterfs will dlopen() glusterfs component. In
such a case, libc's uuid implementation is already
loaded in the calling program, and it will be used
instead of libglusterfs's implementation, causing
crashes.

A possible workaround is to use pre-load libglusterfs
in the calling program (using LD_PRELOAD on NetBSD for
instance), but such a mechanism is not portable, nor
is it flexible. A much better approach is to rename
libglusterfs's uuid_* functions to gf_uuid_* to avoid
any possible conflict. This is what this change attempts.

BUG: 1206587
Change-Id: I9ccd3e13afed1c7fc18508e92c7beb0f5d49f31a
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/10017
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
glusterfs relies on Linux uuid implementation, which
API is incompatible with most other systems's uuid. As
a result, libglusterfs has to embed contrib/uuid,
which is the Linux implementation, on non Linux systems.
This implementation is incompatible with systtem's
built in, but the symbols have the same names.

Usually this is not a problem because when we link
with -lglusterfs, libc's symbols are trumped. However
there is a problem when a program not linked with
-lglusterfs will dlopen() glusterfs component. In
such a case, libc's uuid implementation is already
loaded in the calling program, and it will be used
instead of libglusterfs's implementation, causing
crashes.

A possible workaround is to use pre-load libglusterfs
in the calling program (using LD_PRELOAD on NetBSD for
instance), but such a mechanism is not portable, nor
is it flexible. A much better approach is to rename
libglusterfs's uuid_* functions to gf_uuid_* to avoid
any possible conflict. This is what this change attempts.

BUG: 1206587
Change-Id: I9ccd3e13afed1c7fc18508e92c7beb0f5d49f31a
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/10017
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>quota: enhancement of build ancestry</title>
<updated>2015-04-01T06:38:42+00:00</updated>
<author>
<name>vmallika</name>
<email>vmallika@redhat.com</email>
</author>
<published>2015-03-20T08:55:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=3d4203fe3acad47f0a29ebe094b3e427b13f363f'/>
<id>3d4203fe3acad47f0a29ebe094b3e427b13f363f</id>
<content type='text'>
There can a small race window where marker accounting will
be missed.
Consider below example where NFS mount is used
and bricks are restarted and a write operation is performed

Currently:
T1: lookup from protocol server, quota will initiate ancestry build
T2: opendir FOP from ancestry build
T3: write FOP from client
T4: write_cbk
T5: marker initiate accounting.
    There will be a problem here and txn aborts,
    because build_ancestry is not complete
    and parent not found for an inode
T6: opendir_cbk
T7: initiate readdirp, posix builds ancestry in readdirp


With this patch, now calling readdirp on anonoymous fd 
during build ancestry:

T1: lookup from protocol server, quota will initiate ancestry build
T2: readirp FOP from ancestry build, posix builds ancestry in 
    readdirp 
T3: write FOP from client
T4: write_cbk
T5: marker initiate accounting. 
    No problem here as build ancestry was performed at T1


Change-Id: I2c262c86f34f6c574940a6b8772d94f2bade9465
BUG: 1184885
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9954
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There can a small race window where marker accounting will
be missed.
Consider below example where NFS mount is used
and bricks are restarted and a write operation is performed

Currently:
T1: lookup from protocol server, quota will initiate ancestry build
T2: opendir FOP from ancestry build
T3: write FOP from client
T4: write_cbk
T5: marker initiate accounting.
    There will be a problem here and txn aborts,
    because build_ancestry is not complete
    and parent not found for an inode
T6: opendir_cbk
T7: initiate readdirp, posix builds ancestry in readdirp


With this patch, now calling readdirp on anonoymous fd 
during build ancestry:

T1: lookup from protocol server, quota will initiate ancestry build
T2: readirp FOP from ancestry build, posix builds ancestry in 
    readdirp 
T3: write FOP from client
T4: write_cbk
T5: marker initiate accounting. 
    No problem here as build ancestry was performed at T1


Change-Id: I2c262c86f34f6c574940a6b8772d94f2bade9465
BUG: 1184885
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9954
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>marker, quota: Fixing the coverity issues</title>
<updated>2015-03-31T08:09:53+00:00</updated>
<author>
<name>Nandaja Varma</name>
<email>nandaja.varma@gmail.com</email>
</author>
<published>2015-02-09T11:46:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=d7374684f648c1e45d695454f95a65acfe6d04e8'/>
<id>d7374684f648c1e45d695454f95a65acfe6d04e8</id>
<content type='text'>
Coverity CIDs:
1124601
1124690
1134008
1134009

Change-Id: I93992b11bb6d8f7edd065f602aec2cd7a8b433d0
BUG: 789278
Signed-off-by: Nandaja Varma &lt;nandaja.varma@gmail.com&gt;
Reviewed-on: http://review.gluster.org/9614
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Coverity CIDs:
1124601
1124690
1134008
1134009

Change-Id: I93992b11bb6d8f7edd065f602aec2cd7a8b433d0
BUG: 789278
Signed-off-by: Nandaja Varma &lt;nandaja.varma@gmail.com&gt;
Reviewed-on: http://review.gluster.org/9614
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/quota : Introducing inode quota</title>
<updated>2015-03-19T01:24:12+00:00</updated>
<author>
<name>vmallika</name>
<email>vmallika@redhat.com</email>
</author>
<published>2015-03-18T17:47:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=3e18f093974c85ac92a4c48f0cd13aa9ff9c5cac'/>
<id>3e18f093974c85ac92a4c48f0cd13aa9ff9c5cac</id>
<content type='text'>
==========================================================================
                             Inode quota
==========================================================================
= Currently, the only way to retrieve the number of files/objects in a   =
= directory or volume is to do a crawl of the entire directory/volume.   =
= This is expensive and is not scalable.                                 =
=                                                                        =
= The proposed mechanism will provide an easier alternative to determine =
= the count of files/objects in a directory or volume.                   =
=                                                                        =
= The new mechanism proposes to store count of objects/files as part of  =
= an extended attribute of a directory. Each directory's extended        =
= attribute value will indicate the number of files/objects present      =
= in a tree with the directory being considered as the root of the tree. =
=                                                                        =
= The count value can be accessed by performing a getxattr().            =
= Cluster translators like afr, dht and stripe will perform aggregation  =
= of count values from various bricks when getxattr() happens on the key =
= associated with file/object count.                                     =

A new interface is introduced:
------------------------------
        limit-objects  : limit the number of inodes at directory level
        list-objects   : list the directories where the limit is set
        remove-objects : remove the limit from the directory

==========================================================================

CLI COMMAND:
gluster volume quota &lt;volname&gt; limit-objects &lt;path&gt; &lt;number&gt; [&lt;percent&gt;]

* &lt;number&gt; is a hard-limit for number of objects limitation for path "&lt;path&gt;"
  If hard-limit is exceeded, creation of file/directory is no longer
permitted.

* &lt;percent&gt; is a soft-limit for number of objects creation for path "&lt;path&gt;"
  If soft-limit is exceeded, a warning is issued for each creation.

CLI COMMAND:
gluster volume quota &lt;volname&gt; remove-objects [path]

==========================================================================

CLI COMMAND:
gluster volume quota &lt;volname&gt; list-objects [path] ...

Sample output:
------------------
  Path                   Hard-limit Soft-limit   Used  Available
Soft-limit exceeded?
Hard-limit exceeded?
  ------------------------------------------------------------------------
--------------------------------------
  /dir                      10       80%          10       0
Yes
        Yes

==========================================================================

[root@snapshot-28 dir]# ls
a  b  file11  file12  file13  file14  file15  file16  file17
[root@snapshot-28 dir]# touch a1
touch: cannot touch `a1': Disk quota exceeded
* Nine files are created in directory "dir" and directory is included in
* the
count too. Hence the limit "10" is reached and further file creation
fails

==========================================================================

Note: We have also done some re-factoring in cli for volume name
validation. New function cli_validate_volname is created

==========================================================================

Change-Id: I1823497de4f790a2a20ebb1770293472ea33ee2b
BUG: 1190108
Signed-off-by: Sachin Pandit &lt;spandit@redhat.com&gt;
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9769
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
==========================================================================
                             Inode quota
==========================================================================
= Currently, the only way to retrieve the number of files/objects in a   =
= directory or volume is to do a crawl of the entire directory/volume.   =
= This is expensive and is not scalable.                                 =
=                                                                        =
= The proposed mechanism will provide an easier alternative to determine =
= the count of files/objects in a directory or volume.                   =
=                                                                        =
= The new mechanism proposes to store count of objects/files as part of  =
= an extended attribute of a directory. Each directory's extended        =
= attribute value will indicate the number of files/objects present      =
= in a tree with the directory being considered as the root of the tree. =
=                                                                        =
= The count value can be accessed by performing a getxattr().            =
= Cluster translators like afr, dht and stripe will perform aggregation  =
= of count values from various bricks when getxattr() happens on the key =
= associated with file/object count.                                     =

A new interface is introduced:
------------------------------
        limit-objects  : limit the number of inodes at directory level
        list-objects   : list the directories where the limit is set
        remove-objects : remove the limit from the directory

==========================================================================

CLI COMMAND:
gluster volume quota &lt;volname&gt; limit-objects &lt;path&gt; &lt;number&gt; [&lt;percent&gt;]

* &lt;number&gt; is a hard-limit for number of objects limitation for path "&lt;path&gt;"
  If hard-limit is exceeded, creation of file/directory is no longer
permitted.

* &lt;percent&gt; is a soft-limit for number of objects creation for path "&lt;path&gt;"
  If soft-limit is exceeded, a warning is issued for each creation.

CLI COMMAND:
gluster volume quota &lt;volname&gt; remove-objects [path]

==========================================================================

CLI COMMAND:
gluster volume quota &lt;volname&gt; list-objects [path] ...

Sample output:
------------------
  Path                   Hard-limit Soft-limit   Used  Available
Soft-limit exceeded?
Hard-limit exceeded?
  ------------------------------------------------------------------------
--------------------------------------
  /dir                      10       80%          10       0
Yes
        Yes

==========================================================================

[root@snapshot-28 dir]# ls
a  b  file11  file12  file13  file14  file15  file16  file17
[root@snapshot-28 dir]# touch a1
touch: cannot touch `a1': Disk quota exceeded
* Nine files are created in directory "dir" and directory is included in
* the
count too. Hence the limit "10" is reached and further file creation
fails

==========================================================================

Note: We have also done some re-factoring in cli for volume name
validation. New function cli_validate_volname is created

==========================================================================

Change-Id: I1823497de4f790a2a20ebb1770293472ea33ee2b
BUG: 1190108
Signed-off-by: Sachin Pandit &lt;spandit@redhat.com&gt;
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9769
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Quota: Build ancestry in the lookup</title>
<updated>2015-03-18T13:59:54+00:00</updated>
<author>
<name>vmallika</name>
<email>vmallika@redhat.com</email>
</author>
<published>2015-01-22T12:10:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=ee7bde14cd8afa7752dbaecd72a4afe16fb7afa9'/>
<id>ee7bde14cd8afa7752dbaecd72a4afe16fb7afa9</id>
<content type='text'>
Marker can fail or can account incorrect numbers when it doesn't find a
ancestry for a inode.

Solution:
Current build_ancestry is done only on demand in the write/create FOPs
in quota enforcer.
It is good to do this in the quota_lookup as well.

Change-Id: I8aaf5b3e05a3ca51e7ab1eaa1b636a90f659a872
BUG: 1184885
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9478
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Marker can fail or can account incorrect numbers when it doesn't find a
ancestry for a inode.

Solution:
Current build_ancestry is done only on demand in the write/create FOPs
in quota enforcer.
It is good to do this in the quota_lookup as well.

Change-Id: I8aaf5b3e05a3ca51e7ab1eaa1b636a90f659a872
BUG: 1184885
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9478
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>quota: quotad.socket  files should be created under /var/run/gluster</title>
<updated>2015-03-03T12:51:39+00:00</updated>
<author>
<name>vmallika</name>
<email>vmallika@redhat.com</email>
</author>
<published>2015-03-02T07:22:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=1dc89418ec39929f6f9de448da85966beffeef27'/>
<id>1dc89418ec39929f6f9de448da85966beffeef27</id>
<content type='text'>
Change-Id: I49502a4f7516c02f7e321c16eebd748545afde07
BUG: 1197587
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9778
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I49502a4f7516c02f7e321c16eebd748545afde07
BUG: 1197587
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9778
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>quota: For a link operation, do quota_check_limit only till the</title>
<updated>2015-01-19T10:39:40+00:00</updated>
<author>
<name>vmallika</name>
<email>vmallika@redhat.com</email>
</author>
<published>2015-01-08T10:33:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=8d73f6288249757662cf36e746835e3ecd84add1'/>
<id>8d73f6288249757662cf36e746835e3ecd84add1</id>
<content type='text'>
common ancestor of src and dst file

In a dht_rename, if src_cached and dst_hashed are different, then
rename is split into link and unlink.
We need to handle quota_link properly.

We have fixed quota_rename in patch# 8940, we need to handle quota_link
similarly

&gt; http://review.gluster.org/#/c/8940/
&gt; quota: For a rename operation, do quota_check_limit only till the
&gt; common ancestor of src and dst file

&gt; Example:
&gt; set quota limit set to 1GB on /
&gt; create a file /a1/b1/file1 of 600MB
&gt; mv /a1/b1/file1 /a1/b1/file2
&gt; This rename fails as it takes delta into account which sums up to 1.2BG.
&gt; Though we are not creating new file, we still get quota exceeded error.
&gt; So quota enforce should happen only till b1.

&gt; Similarly:
&gt; mv /a/b/c/file /a/b/x/y/file
&gt; quota enforce should happen only till dir 'b'

&gt; Change-Id: Ia1e5363da876c3d71bd424e67a8bb28b7ac1c7c1
&gt; BUG: 1153964
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/8940
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

Change-Id: I2c814018d17f7af1807c1d1d162d8bdcbb31e491
BUG: 1153964
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9419
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
common ancestor of src and dst file

In a dht_rename, if src_cached and dst_hashed are different, then
rename is split into link and unlink.
We need to handle quota_link properly.

We have fixed quota_rename in patch# 8940, we need to handle quota_link
similarly

&gt; http://review.gluster.org/#/c/8940/
&gt; quota: For a rename operation, do quota_check_limit only till the
&gt; common ancestor of src and dst file

&gt; Example:
&gt; set quota limit set to 1GB on /
&gt; create a file /a1/b1/file1 of 600MB
&gt; mv /a1/b1/file1 /a1/b1/file2
&gt; This rename fails as it takes delta into account which sums up to 1.2BG.
&gt; Though we are not creating new file, we still get quota exceeded error.
&gt; So quota enforce should happen only till b1.

&gt; Similarly:
&gt; mv /a/b/c/file /a/b/x/y/file
&gt; quota enforce should happen only till dir 'b'

&gt; Change-Id: Ia1e5363da876c3d71bd424e67a8bb28b7ac1c7c1
&gt; BUG: 1153964
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/8940
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

Change-Id: I2c814018d17f7af1807c1d1d162d8bdcbb31e491
BUG: 1153964
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9419
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>quota: For a rename operation, do quota_check_limit only till the</title>
<updated>2014-12-27T13:52:07+00:00</updated>
<author>
<name>vmallika</name>
<email>vmallika@redhat.com</email>
</author>
<published>2014-12-24T09:43:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=b6ea761969f85fbb0f22810eb3a3bf1476c8792c'/>
<id>b6ea761969f85fbb0f22810eb3a3bf1476c8792c</id>
<content type='text'>
common ancestor of src and dst file

Example:
set quota limit set to 1GB on /
create a file /a1/b1/file1 of 600MB
mv /a1/b1/file1 /a1/b1/file2
This rename fails as it takes delta into account which sums up to 1.2BG.
Though we are not creating new file, we still get quota exceeded error.
So quota enforce should happen only till b1.

Similarly:
mv /a/b/c/file /a/b/x/y/file
quota enforce should happen only till dir 'b'

Change-Id: Ia1e5363da876c3d71bd424e67a8bb28b7ac1c7c1
BUG: 1153964
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/8940
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
common ancestor of src and dst file

Example:
set quota limit set to 1GB on /
create a file /a1/b1/file1 of 600MB
mv /a1/b1/file1 /a1/b1/file2
This rename fails as it takes delta into account which sums up to 1.2BG.
Though we are not creating new file, we still get quota exceeded error.
So quota enforce should happen only till b1.

Similarly:
mv /a/b/c/file /a/b/x/y/file
quota enforce should happen only till dir 'b'

Change-Id: Ia1e5363da876c3d71bd424e67a8bb28b7ac1c7c1
BUG: 1153964
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/8940
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/quota: fixes to dentry management code in rename.</title>
<updated>2014-09-15T18:24:03+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>rgowdapp@redhat.com</email>
</author>
<published>2014-09-10T11:21:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=3e1935c8141c4f0ff3ee5af30c62a02da772666b'/>
<id>3e1935c8141c4f0ff3ee5af30c62a02da772666b</id>
<content type='text'>
1. After a successful rename (src, dst), the dentry
 &lt;dst-parent, dst-basename&gt; would be associated with src-inode.

2. Its src inode that survives if both of src and dst are present.

The fixes are done based on the above two observation.

Change-Id: I7492a512e3732b1455c243b02fae12d489532bfb
BUG: 1140084
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Reviewed-on: http://review.gluster.org/8687
Reviewed-by: susant palai &lt;spalai@redhat.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
1. After a successful rename (src, dst), the dentry
 &lt;dst-parent, dst-basename&gt; would be associated with src-inode.

2. Its src inode that survives if both of src and dst are present.

The fixes are done based on the above two observation.

Change-Id: I7492a512e3732b1455c243b02fae12d489532bfb
BUG: 1140084
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Reviewed-on: http://review.gluster.org/8687
Reviewed-by: susant palai &lt;spalai@redhat.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
