Re: [PATCH] ovl: do not ignore disk quota if current task is not privileged

From: Konstantin Khlebnikov
Date: Tue Jan 10 2017 - 11:44:38 EST


On 10.01.2017 19:35, Vivek Goyal wrote:
On Tue, Jan 10, 2017 at 11:06:47AM -0500, Vivek Goyal wrote:
On Tue, Jan 10, 2017 at 02:26:48PM +0300, Konstantin Khlebnikov wrote:
If overlay was mounted by root then quota set for upper layer does not work
because overlay now always use mounter's credentials for operations.


Hi Konstantin,

So CAP_SYS_RESOURCE bypasses the quota checks?

I just created dir upper on xfs filesystem and defined quota of 1G and
as root user (with cap_sys_resoureces), I am not able to create file
bigger than 1g in that dir. So looks like xfs quota took affect even
for privileged user with CAP_SYS_RESOURCE set.

What am I missing?

As root user, I set limit of 1G on work/ and upper/ dir and created
a file of 4G in lower/ dir and mounted overlay on "merged" dir and
did "touch zerofile", and go error message.

touch: cannot touch 'zerofile': No space left on device

So looks like I am doing something wrong and not be able to reproduce
the issue to begin with.


I'm using ext4 project quota around upper/work directories.
ext4 use generic quota implementation: it ignores hard limits if CAP_SYS_RESOURCE is set.

It seems XFS ignores CAP_SYS_RESOURCE for any kind of quota.
But I've found special meaning for CAP_FOWNER - chown() can ignore user/group
quota if caller have this capability.

--
Konstantin