{"action":"created","issue":{"url":"https://api.github.com/repos/zfsonlinux/zfs/issues/6290","repository_url":"https://api.github.com/repos/zfsonlinux/zfs","labels_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/6290/labels{/name}","comments_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/6290/comments","events_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/6290/events","html_url":"https://github.com/zfsonlinux/zfs/pull/6290","id":239688999,"number":6290,"title":"Project Quota on ZFS","user":{"login":"Nasf-Fan","id":29650881,"avatar_url":"https://avatars0.githubusercontent.com/u/29650881?v=4","gravatar_id":"","url":"https://api.github.com/users/Nasf-Fan","html_url":"https://github.com/Nasf-Fan","followers_url":"https://api.github.com/users/Nasf-Fan/followers","following_url":"https://api.github.com/users/Nasf-Fan/following{/other_user}","gists_url":"https://api.github.com/users/Nasf-Fan/gists{/gist_id}","starred_url":"https://api.github.com/users/Nasf-Fan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nasf-Fan/subscriptions","organizations_url":"https://api.github.com/users/Nasf-Fan/orgs","repos_url":"https://api.github.com/users/Nasf-Fan/repos","events_url":"https://api.github.com/users/Nasf-Fan/events{/privacy}","received_events_url":"https://api.github.com/users/Nasf-Fan/received_events","type":"User","site_admin":false},"labels":[{"id":678314691,"url":"https://api.github.com/repos/zfsonlinux/zfs/labels/Ready","name":"Ready","color":"006b75","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":88,"created_at":"2017-06-30T06:31:15Z","updated_at":"2017-10-30T07:00:18Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/zfsonlinux/zfs/pulls/6290","html_url":"https://github.com/zfsonlinux/zfs/pull/6290","diff_url":"https://github.com/zfsonlinux/zfs/pull/6290.diff","patch_url":"https://github.com/zfsonlinux/zfs/pull/6290.patch"},"body":"Project quota is a new ZFS system space/object usage accounting\r\nand enforcement mechanism. Similar as user/group quota, project\r\nquota is another dimension of system quota. It bases on the new\r\nobject attribute - project ID.\r\n\r\nProject ID is a numerical value to indicate to which project an\r\nobject belongs. An object only can belong to one project though\r\nyou (the object owner or privileged user) can change the object\r\nproject ID that can be set/modified via 'chattr -p' explicitly,\r\nor inherited from its parent object when created if such parent\r\nhas the project inherit flag (via 'chattr +P').\r\n\r\nBy accounting the spaces/objects belong to the same project, we\r\ncan know how many spaces/objects used by the project. And if we\r\nset the upper limit then we can control the spaces/objects that\r\nare consumed by such project. It is useful when multiple groups\r\nand users cooperate for the same project, or when an user/group\r\nneeds to participate in multiple projects.\r\n\r\nSupport the following commands and functionalities:\r\n\r\nzfs set projectquota@project\r\nzfs set projectobjquota@project\r\n\r\nzfs get projectquota@project\r\nzfs get projectobjquota@project\r\nzfs get projectused@project\r\nzfs get projectobjused@project\r\n\r\nzfs projectspace\r\n\r\nzfs allow projectquota\r\nzfs allow projectobjquota\r\nzfs allow projectused\r\nzfs allow projectobjused\r\n\r\nzfs unallow projectquota\r\nzfs unallow projectobjquota\r\nzfs unallow projectused\r\nzfs unallow projectobjused\r\n\r\nchattr +/-P\r\nchattr -p project_id\r\nlsattr -p\r\n\r\nSigned-off-by: Fan Yong <fan.yong@intel.com>\r\nChange-Id: Ib4f0544602e03fb61fd46a849d7ba51a6005693c\r\n\r\n<!--- Provide a general summary of your changes in the Title above -->\r\n\r\n<!---\r\nDocumentation on ZFS Buildbot options can be found at\r\nhttps://github.com/zfsonlinux/zfs/wiki/Buildbot-Options\r\n-->\r\n\r\n### Description\r\n<!--- Describe your changes in detail -->\r\n\r\n### Motivation and Context\r\n<!--- Why is this change required? What problem does it solve? -->\r\n<!--- If it fixes an open issue, please link to the issue here. -->\r\n\r\n### How Has This Been Tested?\r\n<!--- Please describe in detail how you tested your changes. -->\r\n<!--- Include details of your testing environment, and the tests you ran to -->\r\n<!--- see how your change affects other areas of the code, etc. -->\r\n<!--- If your change is a performance enhancement, please provide benchmarks here. -->\r\n\r\n### Types of changes\r\n<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Performance enhancement (non-breaking change which improves efficiency)\r\n- [ ] Code cleanup (non-breaking change which makes code smaller or more readable)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n- [ ] Documentation (a change to man pages or other documentation)\r\n\r\n### Checklist:\r\n<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\r\n- [x] My code follows the ZFS on Linux code style requirements.\r\n- [x] I have updated the documentation accordingly.\r\n- [x] I have read the **CONTRIBUTING** document.\r\n- [x] I have added tests to cover my changes.\r\n- [ ] All new and existing tests passed.\r\n- [x] All commit messages are properly formatted and contain `Signed-off-by`.\r\n- [ ] Change has been approved by a ZFS on Linux member.\r\n"},"comment":{"url":"https://api.github.com/repos/zfsonlinux/zfs/issues/comments/340358987","html_url":"https://github.com/zfsonlinux/zfs/pull/6290#issuecomment-340358987","issue_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/6290","id":340358987,"user":{"login":"adilger","id":167584,"avatar_url":"https://avatars0.githubusercontent.com/u/167584?v=4","gravatar_id":"","url":"https://api.github.com/users/adilger","html_url":"https://github.com/adilger","followers_url":"https://api.github.com/users/adilger/followers","following_url":"https://api.github.com/users/adilger/following{/other_user}","gists_url":"https://api.github.com/users/adilger/gists{/gist_id}","starred_url":"https://api.github.com/users/adilger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adilger/subscriptions","organizations_url":"https://api.github.com/users/adilger/orgs","repos_url":"https://api.github.com/users/adilger/repos","events_url":"https://api.github.com/users/adilger/events{/privacy}","received_events_url":"https://api.github.com/users/adilger/received_events","type":"User","site_admin":false},"created_at":"2017-10-30T07:00:18Z","updated_at":"2017-10-30T07:00:18Z","author_association":"NONE","body":"Brian, what is the status of your review/testing?  It looks like Fan Yong has refreshed the patch after your last review."}}
{"actor":{"display_login":"adilger"}}