Hide Forgot
This is a known issue, which needs to be documented. Rename operation (which can be viewed as removing oldpath and creating newpath) actually requires an additional disk space equal to file size. This is because, during rename, we subtract size on oldpath after rename operation is performed, but we check whether quota limit is exceeded on parents of newfile before rename operation. In this case that additional disk space (250KB) is not available as /d1 is almost full and hence quota is complaining about Disk quota being exceeded. regards, Raghavendra.
Found this issue on a dist-strip volume mounted over fuse, 1. create a dir(d1) with a quota limit 2. create another dir(dd1) inside the above mentioned dir(d1) , set quota limit on it also. 3. create some file inside d1. 4. mv file to dd1 Expected result:- if the file size is less then space limit set the file should be allowed to move. Actual result:- file more having size more than 250KB are not allowed to move. Logs, from client side, [root@centos-qa-client-1 d1]# ls f.1 [root@centos-qa-client-1 d1]# dd if=/dev/zero of=f.n bs=1KB count=490 490+0 records in 490+0 records out 490000 bytes (490 kB) copied, 0.212802 seconds, 2.3 MB/s [root@centos-qa-client-1 d1]# mkdir dd1 [root@centos-qa-client-1 d1]# ls -li total 1012 9240762 drwxr-xr-x 2 root root 8192 Apr 13 03:03 dd1 9240706 -rw-r--r-- 1 root root 512000 Apr 13 00:03 f.1 9240727 -rw-r--r-- 1 root root 490000 Apr 13 03:03 f.n [root@centos-qa-client-1 d1]# mv f.n dd1/ mv: cannot move `f.n' to `dd1/f.n': Disk quota exceeded [root@centos-qa-client-1 d1]# #dd if=/dev/zero of=f.n1 bs=1 count=1 [root@centos-qa-client-1 d1]# ls -R .: dd1 f.1 f.n ./dd1: [root@centos-qa-client-1 d1]# dd if=/dev/zero of=f.n1 bs=1 count=1 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.000921 seconds, 1.1 kB/s [root@centos-qa-client-1 d1]# mv f.n1 dd1/ [root@centos-qa-client-1 d1]# mv dd1/f.n1 . [root@centos-qa-client-1 d1]# ls -R .: dd1 f.1 f.n f.n1 ./dd1: [root@centos-qa-client-1 d1]# ls -li total 1020 9240762 drwxr-xr-x 2 root root 8192 Apr 13 03:06 dd1 9240706 -rw-r--r-- 1 root root 512000 Apr 13 00:03 f.1 9240727 -rw-r--r-- 1 root root 490000 Apr 13 03:03 f.n 9240764 -rw-r--r-- 1 root root 1 Apr 13 03:05 f.n1 [root@centos-qa-client-1 d1]# rm f.n rm: remove regular file `f.n'? y [root@centos-qa-client-1 d1]# dd if=/dev/zero of=f.n bs=1KB count=300 300+0 records in 300+0 records out 300000 bytes (300 kB) copied, 0.132111 seconds, 2.3 MB/s [root@centos-qa-client-1 d1]# mv f.n dd1/ mv: cannot move `f.n' to `dd1/f.n': Disk quota exceeded [root@centos-qa-client-1 d1]# ls dd1 [root@centos-qa-client-1 d1]# pwd /mnt/g-diststrip/d1 [root@centos-qa-client-1 d1]# rm f.n rm: remove regular file `f.n'? y [root@centos-qa-client-1 d1]# dd if=/dev/zero of=f.n bs=1KB count=100 100+0 records in 100+0 records out 100000 bytes (100 kB) copied, 0.08415 seconds, 1.2 MB/s [root@centos-qa-client-1 d1]# mv f.n dd1/ [root@centos-qa-client-1 d1]# mv dd1/f.n . [root@centos-qa-client-1 d1]# rm f.n rm: remove regular file `f.n'? y [root@centos-qa-client-1 d1]# dd if=/dev/zero of=f.n bs=1KB count=250 250+0 records in 250+0 records out 250000 bytes (250 kB) copied, 0.127463 seconds, 2.0 MB/s [root@centos-qa-client-1 d1]# mv f.n dd1/ mv: cannot move `f.n' to `dd1/f.n': Disk quota exceeded [root@centos-qa-client-1 d1]# ls -l total 788 drwxr-xr-x 2 root root 8192 Apr 13 03:10 dd1 -rw-r--r-- 1 root root 512000 Apr 13 00:03 f.1 -rw-r--r-- 1 root root 250000 Apr 13 03:11 f.n -rw-r--r-- 1 root root 1 Apr 13 03:05 f.n1 [root@centos-qa-client-1 d1]# ls -l dd1 total 0 [root@centos-qa-client-1 d1]# ##########################################################3 from server side [root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list path limit_set size ---------------------------------------------------------------------------------- /d1 1048576 1002000 /d2 1048576 980000 /d2/dd2 512000 490000 [root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 limit-usage /d1/dd1 500KB limit set on /d1/dd1 [root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list path limit_set size ---------------------------------------------------------------------------------- /d1 1048576 1002000 /d2 1048576 980000 /d2/dd2 512000 490000 /d1/dd1 512000 0 [root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list path limit_set size ---------------------------------------------------------------------------------- /d1 1048576 1002000 /d2 1048576 980000 /d2/dd2 512000 490000 /d1/dd1 512000 0 [root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list path limit_set size ---------------------------------------------------------------------------------- /d1 1048576 812000 /d2 1048576 980000 /d2/dd2 512000 490000 /d1/dd1 512000 0 [root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list path limit_set size ---------------------------------------------------------------------------------- /d1 1048576 812000 /d2 1048576 980000 /d2/dd2 512000 490000 /d1/dd1 512000 0 [root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list path limit_set size ---------------------------------------------------------------------------------- /d1 1048576 612000 /d2 1048576 980000 /d2/dd2 512000 490000 /d1/dd1 512000 0 [root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list path limit_set size ---------------------------------------------------------------------------------- /d1 1048576 612000 /d2 1048576 980000 /d2/dd2 512000 490000 /d1/dd1 512000 100000 [root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list path limit_set size ---------------------------------------------------------------------------------- /d1 1048576 412000 /d2 1048576 980000 /d2/dd2 512000 490000 /d1/dd1 512000 0 [root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list path limit_set size ---------------------------------------------------------------------------------- /d1 1048576 662000 /d2 1048576 980000 /d2/dd2 512000 490000 /d1/dd1 512000 0 [root@centos-qa-client-2 sbin]#