lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 23 Sep 2015 17:13:39 +0300
From:	Dmitry Monakhov <dmonakhov@...nvz.org>
To:	Li Xi <pkuelelixi@...il.com>
Cc:	Jan Kara <jack@...e.cz>,
	"linux-fsdevel\@vger.kernel.org" <linux-fsdevel@...r.kernel.org>,
	Ext4 Developers List <linux-ext4@...r.kernel.org>,
	"linux-api\@vger.kernel.org" <linux-api@...r.kernel.org>,
	Theodore Ts'o <tytso@....edu>,
	Andreas Dilger <adilger@...ger.ca>,
	"viro\@zeniv.linux.org.uk" <viro@...iv.linux.org.uk>,
	"hch\@infradead.org" <hch@...radead.org>
Subject: Re: [v15 0/4] ext4: add project quota support

Li Xi <pkuelelixi@...il.com> writes:

> Hi Dmitry,
>
> Please check following linkage. It includes all the patches I've made
Which link? According to annotation all links points to previous
versions of kernel part. Am I missing something?
> for ext4 project quota. Unfortunately, multiple tools need to be
> patched, including 1) patch e2fsprogs 2) patch quota-tools 3) patch
> linux kernel 4) compile project_manage.
I do believe that.
> Please let me know if there is any problem.
It would be very useful for whole community if you just add git-links
to modified tools. tools for example like follows:
kernel-pc: http://github.com/blabla/linus.git/prjquota/
e2fsprogs: http://github.com/blabla/e2fsprogs/prjquota/
quota-tools: http://github.com/blabla/quota-tools/prjquota/

This allow others to test whole bundle. For example xfstests-bld
users can simply change git-sources to yours and run full xfstests
>
> Thanks,
> Li Xi
>
> On Wed, Sep 23, 2015 at 9:32 PM, Dmitry Monakhov <dmonakhov@...nvz.org> wrote:
>> Li Xi <pkuelelixi@...il.com> writes:
>>
>>> Hi Jan Kara,
>>>
>>> Sorry, I forgot to mention that we run the xfstests for both XFS and
>>> Ext4 with and without these patches. And still, some (but not too
>>> many) of the tests fails, but the failed tests are the same no matter
>>> the patches are applied or not. And we didn't see any project quota
>>> related tests fails.
>> BTW. Where I can find userspace tools to play with this feature?
>>>
>>> Regards,
>>> Li Xi
>>>
>>> On Wed, Sep 23, 2015 at 8:31 PM, Jan Kara <jack@...e.cz> wrote:
>>>> On Sun 13-09-15 21:20:29, Li Xi wrote:
>>>>> The following patches propose an implementation of project quota
>>>>> support for ext4. A project is an aggregate of unrelated inodes
>>>>> which might scatter in different directories. Inodes that belong
>>>>> to the same project possess an identical identification i.e.
>>>>> 'project ID', just like every inode has its user/group
>>>>> identification. The following patches add project quota as
>>>>> supplement to the former uer/group quota types.
>>>>
>>>> With the last version of the patches, there was only one outstanding issue
>>>> and that was whether xfstests for XFS pass correctly (especially the
>>>> project quota related ones). Have you been able to verify this?
>>>>
>>>>                                                                 Honza
>>>>
>>>>>
>>>>> The semantics of ext4 project quota is consistent with XFS. Each
>>>>> directory can have EXT4_INODE_PROJINHERIT flag set. When the
>>>>> EXT4_INODE_PROJINHERIT flag of a parent directory is not set, a
>>>>> newly created inode under that directory will have a default project
>>>>> ID (i.e. 0). And its EXT4_INODE_PROJINHERIT flag is not set either.
>>>>> When this flag is set on a directory, following rules will be kept:
>>>>>
>>>>> 1) The newly created inode under that directory will inherit both
>>>>> the EXT4_INODE_PROJINHERIT flag and the project ID from its parent
>>>>> directory.
>>>>>
>>>>> 2) Hard-linking a inode with different project ID into that directory
>>>>> will fail with errno EXDEV.
>>>>>
>>>>> 3) Renaming a inode with different project ID into that directory
>>>>> will fail with errno EXDEV. However, 'mv' command will detect this
>>>>> failure and copy the renamed inode to a new inode in the directory.
>>>>> Thus, this new inode will inherit both the project ID and
>>>>> EXT4_INODE_PROJINHERIT flag.
>>>>>
>>>>> 4) If the project quota of that ID is being enforced, statfs() on
>>>>> that directory will take the quotas as another upper limits along
>>>>> with the capacity of the file system, i.e. the total block/inode
>>>>> number will be the minimum of the quota limits and file system
>>>>> capacity.
>>>>>
>>>>> Changelog:
>>>>> * v15 <- v14:
>>>>>  - Rebase to newest master branch of git repository (b0a1ea51b).
>>>>> * v14 <- v13:
>>>>>  - Cleanup ioctl of setting project ID;
>>>>>  - Do not check project quota inode number specially;
>>>>>  - Check isize when extract project ID from disk;
>>>>>  - Rebase to latest kernel (4.0.0)
>>>>> * v13 <- v12:
>>>>>  - Update inode size check of project ID.
>>>>> * v12 <- v11:
>>>>>  - Relax the permission check when setting project ID.
>>>>> * v11 <- v10:
>>>>>  - Remove project quota mount option;
>>>>>  - Fix permission check when setting project ID.
>>>>> * v10 <- v9:
>>>>>  - Remove non-journaled project quota interface;
>>>>>  - Only allow admin to read project quota info;
>>>>>  - Cleanup FS_IOC_FSSETXATTR/FS_IOC_FSGETXATTR interface.
>>>>> * v9 <- v8:
>>>>>  - Remove non-journaled project quota;
>>>>>  - Rebase to newest dev branch of ext4 repository (3.19.0-rc3).
>>>>> * v8 <- v7:
>>>>>  - Rebase to newest dev branch of ext4 repository (3.18.0_rc3).
>>>>> * v7 <- v6:
>>>>>  - Map ext4 inode flags to xflags of struct fsxattr;
>>>>>  - Add patch to cleanup ext4 inode flag definitions.
>>>>> * v6 <- v5:
>>>>>  - Add project ID check for cross rename;
>>>>>  - Remove patch of EXT4_IOC_GETPROJECT/EXT4_IOC_SETPROJECT ioctl
>>>>> * v5 <- v4:
>>>>>  - Check project feature when set/get project ID;
>>>>>  - Do not check project feature for project quota;
>>>>>  - Add support of FS_IOC_FSSETXATTR/FS_IOC_FSGETXATTR.
>>>>> * v4 <- v3:
>>>>>  - Do not check project feature when set/get project ID;
>>>>>  - Use EXT4_MAXQUOTAS instead of MAXQUOTAS in ext4 patches;
>>>>>  - Remove unnecessary change of fs/quota/dquot.c;
>>>>>  - Remove CONFIG_QUOTA_PROJECT.
>>>>> * v3 <- v2:
>>>>>  - Add EXT4_INODE_PROJINHERIT semantics.
>>>>> * v2 <- v1:
>>>>>  - Add ioctl interface for setting/getting project;
>>>>>  - Add EXT4_FEATURE_RO_COMPAT_PROJECT;
>>>>>  - Add get_projid() method in struct dquot_operations;
>>>>>  - Add error check of ext4_inode_projid_set/get().
>>>>>
>>>>> v14: http://article.gmane.org/gmane.linux.kernel.api/10345
>>>>> v13: http://www.spinics.net/lists/linux-fsdevel/msg85205.html
>>>>> v12: http://www.spinics.net/lists/linux-fsdevel/msg84905.html
>>>>> v11: http://www.spinics.net/lists/linux-ext4/msg47450.html
>>>>> v10: http://www.spinics.net/lists/linux-ext4/msg47413.html
>>>>> v9: http://www.spinics.net/lists/linux-ext4/msg47326.html
>>>>> v8: http://www.spinics.net/lists/linux-ext4/msg46545.html
>>>>> v7: http://www.spinics.net/lists/linux-fsdevel/msg80404.html
>>>>> v6: http://www.spinics.net/lists/linux-fsdevel/msg80022.html
>>>>> v5: http://www.spinics.net/lists/linux-api/msg04840.html
>>>>> v4: http://lwn.net/Articles/612972/
>>>>> v3: http://www.spinics.net/lists/linux-ext4/msg45184.html
>>>>> v2: http://www.spinics.net/lists/linux-ext4/msg44695.html
>>>>> v1: http://article.gmane.org/gmane.comp.file-systems.ext4/45153
>>>>>
>>>>> Any comments or feedbacks are appreciated.
>>>>>
>>>>> Regards,
>>>>>                                          - Li Xi
>>>>>
>>>>> Li Xi (4):
>>>>>   ext4: adds project ID support
>>>>>   ext4: adds project quota support
>>>>>   ext4: adds FS_IOC_FSSETXATTR/FS_IOC_FSGETXATTR interface support
>>>>>   ext4: cleanup inode flag definitions
>>>>>
>>>>>  fs/ext4/ext4.h          |   85 +++++++----
>>>>>  fs/ext4/ialloc.c        |    7 +
>>>>>  fs/ext4/inode.c         |   28 ++++
>>>>>  fs/ext4/ioctl.c         |  367 ++++++++++++++++++++++++++++++++++++-----------
>>>>>  fs/ext4/namei.c         |   19 +++
>>>>>  fs/ext4/super.c         |   57 +++++++-
>>>>>  fs/xfs/libxfs/xfs_fs.h  |   47 +++----
>>>>>  include/uapi/linux/fs.h |   33 +++++
>>>>>  8 files changed, 490 insertions(+), 153 deletions(-)
>>>>>
>>>> --
>>>> Jan Kara <jack@...e.com>
>>>> SUSE Labs, CR

Download attachment "signature.asc" of type "application/pgp-signature" (473 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ