{"action":"created","comment":{"url":"https://api.github.com/repos/zfsonlinux/zfs/pulls/comments/77445884","id":77445884,"diff_hunk":"@@ -1278,6 +1289,30 @@ do_userquota_update(objset_t *os, uint64_t used, uint64_t flags,\n \t}\n }\n \n+static void\n+do_userobjquota_update(objset_t *os, uint64_t flags, uint64_t user,\n+    uint64_t group, boolean_t subtract, dmu_tx_t *tx)\n+{\n+\tif (flags & DNODE_FLAG_USEROBJUSED_ACCOUNTED) {\n+\t\tchar name[36];\n+\n+\t\tif ((!spa_feature_is_active(os->os_spa,\n+\t\t    SPA_FEATURE_USEROBJ_ACCOUNTING)))\n+\t\t\tspa_feature_incr(os->os_spa,\n+\t\t\t    SPA_FEATURE_USEROBJ_ACCOUNTING, tx);\n+\n+\t\t(void) snprintf(name, sizeof (name), \"obj-%llx\",\n+\t\t    (longlong_t)user);\n+\t\tVERIFY3U(0, ==, zap_increment(os, DMU_USERUSED_OBJECT, name,","path":"module/zfs/dmu_objset.c","position":50,"original_position":50,"commit_id":"0a0bb48046d0c1de377a57c24b24bd7609c1b190","original_commit_id":"0a0bb48046d0c1de377a57c24b24bd7609c1b190","user":{"login":"ahrens","id":799124,"avatar_url":"https://avatars.githubusercontent.com/u/799124?v=3","gravatar_id":"","url":"https://api.github.com/users/ahrens","html_url":"https://github.com/ahrens","followers_url":"https://api.github.com/users/ahrens/followers","following_url":"https://api.github.com/users/ahrens/following{/other_user}","gists_url":"https://api.github.com/users/ahrens/gists{/gist_id}","starred_url":"https://api.github.com/users/ahrens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahrens/subscriptions","organizations_url":"https://api.github.com/users/ahrens/orgs","repos_url":"https://api.github.com/users/ahrens/repos","events_url":"https://api.github.com/users/ahrens/events{/privacy}","received_events_url":"https://api.github.com/users/ahrens/received_events","type":"User","site_admin":false},"body":"`VERIFY0(zap_increment(...))` is a shortcut for doing this.","created_at":"2016-09-04T02:30:55Z","updated_at":"2016-09-04T02:30:55Z","html_url":"https://github.com/zfsonlinux/zfs/pull/3983#discussion_r77445884","pull_request_url":"https://api.github.com/repos/zfsonlinux/zfs/pulls/3983","_links":{"self":{"href":"https://api.github.com/repos/zfsonlinux/zfs/pulls/comments/77445884"},"html":{"href":"https://github.com/zfsonlinux/zfs/pull/3983#discussion_r77445884"},"pull_request":{"href":"https://api.github.com/repos/zfsonlinux/zfs/pulls/3983"}}},"pull_request":{"url":"https://api.github.com/repos/zfsonlinux/zfs/pulls/3983","id":49738002,"html_url":"https://github.com/zfsonlinux/zfs/pull/3983","diff_url":"https://github.com/zfsonlinux/zfs/pull/3983.diff","patch_url":"https://github.com/zfsonlinux/zfs/pull/3983.patch","issue_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/3983","number":3983,"state":"open","locked":false,"title":"Add support for user/group dnode accounting & quota","user":{"login":"jxiong","id":472018,"avatar_url":"https://avatars.githubusercontent.com/u/472018?v=3","gravatar_id":"","url":"https://api.github.com/users/jxiong","html_url":"https://github.com/jxiong","followers_url":"https://api.github.com/users/jxiong/followers","following_url":"https://api.github.com/users/jxiong/following{/other_user}","gists_url":"https://api.github.com/users/jxiong/gists{/gist_id}","starred_url":"https://api.github.com/users/jxiong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jxiong/subscriptions","organizations_url":"https://api.github.com/users/jxiong/orgs","repos_url":"https://api.github.com/users/jxiong/repos","events_url":"https://api.github.com/users/jxiong/events{/privacy}","received_events_url":"https://api.github.com/users/jxiong/received_events","type":"User","site_admin":false},"body":"This patch tracks dnode usage for each user/group in the\r\nDMU_USER/GROUPUSED_OBJECT ZAPs. ZAP entries dedicated to dnode\r\naccounting have the key prefixed with \"dn-\" followed by the UID/GID\r\nin string format (as done for the block accounting).\r\nA new SPA feature has been added for dnode accounting as well as\r\na new ZPL version. The SPA feature must be enabled in the pool\r\nbefore upgrading the zfs filesystem. During the zfs version upgrade,\r\na \"quotacheck\" will be executed by marking all dnode as dirty.\r\n\r\nZoL-bug-id: https://github.com/zfsonlinux/zfs/issues/3500\r\n\r\nSigned-off-by: Johann Lombardi <johann.lombardi@intel.com>\r\nSigned-off-by: Jinshan Xiong <jinshan.xiong@intel.com>\r\nChange-Id: I899ff446cbf2aa7e355e7d98a83d614f1cd4624b","created_at":"2015-11-04T20:04:38Z","updated_at":"2016-09-04T02:30:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"91bb4180a72e7d38e9e1fd14e1d7968c45d44924","assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/zfsonlinux/zfs/milestones/11","html_url":"https://github.com/zfsonlinux/zfs/milestones/0.7.0","labels_url":"https://api.github.com/repos/zfsonlinux/zfs/milestones/11/labels","id":7013,"number":11,"title":"0.7.0","description":"ZFS on Linux v0.7.0 - Memory management\r\n\r\n","creator":{"login":"behlendorf","id":148917,"avatar_url":"https://avatars.githubusercontent.com/u/148917?v=3","gravatar_id":"","url":"https://api.github.com/users/behlendorf","html_url":"https://github.com/behlendorf","followers_url":"https://api.github.com/users/behlendorf/followers","following_url":"https://api.github.com/users/behlendorf/following{/other_user}","gists_url":"https://api.github.com/users/behlendorf/gists{/gist_id}","starred_url":"https://api.github.com/users/behlendorf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/behlendorf/subscriptions","organizations_url":"https://api.github.com/users/behlendorf/orgs","repos_url":"https://api.github.com/users/behlendorf/repos","events_url":"https://api.github.com/users/behlendorf/events{/privacy}","received_events_url":"https://api.github.com/users/behlendorf/received_events","type":"User","site_admin":false},"open_issues":52,"closed_issues":284,"state":"open","created_at":"2011-05-03T17:38:46Z","updated_at":"2016-09-02T05:55:49Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/zfsonlinux/zfs/pulls/3983/commits","review_comments_url":"https://api.github.com/repos/zfsonlinux/zfs/pulls/3983/comments","review_comment_url":"https://api.github.com/repos/zfsonlinux/zfs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/3983/comments","statuses_url":"https://api.github.com/repos/zfsonlinux/zfs/statuses/0a0bb48046d0c1de377a57c24b24bd7609c1b190","head":{"label":"jxiong:dnode_quota","ref":"dnode_quota","sha":"0a0bb48046d0c1de377a57c24b24bd7609c1b190","user":{"login":"jxiong","id":472018,"avatar_url":"https://avatars.githubusercontent.com/u/472018?v=3","gravatar_id":"","url":"https://api.github.com/users/jxiong","html_url":"https://github.com/jxiong","followers_url":"https://api.github.com/users/jxiong/followers","following_url":"https://api.github.com/users/jxiong/following{/other_user}","gists_url":"https://api.github.com/users/jxiong/gists{/gist_id}","starred_url":"https://api.github.com/users/jxiong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jxiong/subscriptions","organizations_url":"https://api.github.com/users/jxiong/orgs","repos_url":"https://api.github.com/users/jxiong/repos","events_url":"https://api.github.com/users/jxiong/events{/privacy}","received_events_url":"https://api.github.com/users/jxiong/received_events","type":"User","site_admin":false},"repo":{"id":41707112,"name":"zfs","full_name":"jxiong/zfs","owner":{"login":"jxiong","id":472018,"avatar_url":"https://avatars.githubusercontent.com/u/472018?v=3","gravatar_id":"","url":"https://api.github.com/users/jxiong","html_url":"https://github.com/jxiong","followers_url":"https://api.github.com/users/jxiong/followers","following_url":"https://api.github.com/users/jxiong/following{/other_user}","gists_url":"https://api.github.com/users/jxiong/gists{/gist_id}","starred_url":"https://api.github.com/users/jxiong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jxiong/subscriptions","organizations_url":"https://api.github.com/users/jxiong/orgs","repos_url":"https://api.github.com/users/jxiong/repos","events_url":"https://api.github.com/users/jxiong/events{/privacy}","received_events_url":"https://api.github.com/users/jxiong/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jxiong/zfs","description":"Native ZFS for Linux","fork":true,"url":"https://api.github.com/repos/jxiong/zfs","forks_url":"https://api.github.com/repos/jxiong/zfs/forks","keys_url":"https://api.github.com/repos/jxiong/zfs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jxiong/zfs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jxiong/zfs/teams","hooks_url":"https://api.github.com/repos/jxiong/zfs/hooks","issue_events_url":"https://api.github.com/repos/jxiong/zfs/issues/events{/number}","events_url":"https://api.github.com/repos/jxiong/zfs/events","assignees_url":"https://api.github.com/repos/jxiong/zfs/assignees{/user}","branches_url":"https://api.github.com/repos/jxiong/zfs/branches{/branch}","tags_url":"https://api.github.com/repos/jxiong/zfs/tags","blobs_url":"https://api.github.com/repos/jxiong/zfs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jxiong/zfs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jxiong/zfs/git/refs{/sha}","trees_url":"https://api.github.com/repos/jxiong/zfs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jxiong/zfs/statuses/{sha}","languages_url":"https://api.github.com/repos/jxiong/zfs/languages","stargazers_url":"https://api.github.com/repos/jxiong/zfs/stargazers","contributors_url":"https://api.github.com/repos/jxiong/zfs/contributors","subscribers_url":"https://api.github.com/repos/jxiong/zfs/subscribers","subscription_url":"https://api.github.com/repos/jxiong/zfs/subscription","commits_url":"https://api.github.com/repos/jxiong/zfs/commits{/sha}","git_commits_url":"https://api.github.com/repos/jxiong/zfs/git/commits{/sha}","comments_url":"https://api.github.com/repos/jxiong/zfs/comments{/number}","issue_comment_url":"https://api.github.com/repos/jxiong/zfs/issues/comments{/number}","contents_url":"https://api.github.com/repos/jxiong/zfs/contents/{+path}","compare_url":"https://api.github.com/repos/jxiong/zfs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jxiong/zfs/merges","archive_url":"https://api.github.com/repos/jxiong/zfs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jxiong/zfs/downloads","issues_url":"https://api.github.com/repos/jxiong/zfs/issues{/number}","pulls_url":"https://api.github.com/repos/jxiong/zfs/pulls{/number}","milestones_url":"https://api.github.com/repos/jxiong/zfs/milestones{/number}","notifications_url":"https://api.github.com/repos/jxiong/zfs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jxiong/zfs/labels{/name}","releases_url":"https://api.github.com/repos/jxiong/zfs/releases{/id}","deployments_url":"https://api.github.com/repos/jxiong/zfs/deployments","created_at":"2015-09-01T00:12:24Z","updated_at":"2015-09-01T00:12:27Z","pushed_at":"2016-09-02T18:28:33Z","git_url":"git://github.com/jxiong/zfs.git","ssh_url":"git@github.com:jxiong/zfs.git","clone_url":"https://github.com/jxiong/zfs.git","svn_url":"https://github.com/jxiong/zfs","homepage":"http://zfsonlinux.org/","size":31761,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"top"}},"base":{"label":"zfsonlinux:master","ref":"master","sha":"d02ca379795a37b8541da5a1b37528f7130de1e6","user":{"login":"zfsonlinux","id":575083,"avatar_url":"https://avatars.githubusercontent.com/u/575083?v=3","gravatar_id":"","url":"https://api.github.com/users/zfsonlinux","html_url":"https://github.com/zfsonlinux","followers_url":"https://api.github.com/users/zfsonlinux/followers","following_url":"https://api.github.com/users/zfsonlinux/following{/other_user}","gists_url":"https://api.github.com/users/zfsonlinux/gists{/gist_id}","starred_url":"https://api.github.com/users/zfsonlinux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zfsonlinux/subscriptions","organizations_url":"https://api.github.com/users/zfsonlinux/orgs","repos_url":"https://api.github.com/users/zfsonlinux/repos","events_url":"https://api.github.com/users/zfsonlinux/events{/privacy}","received_events_url":"https://api.github.com/users/zfsonlinux/received_events","type":"Organization","site_admin":false},"repo":{"id":437011,"name":"zfs","full_name":"zfsonlinux/zfs","owner":{"login":"zfsonlinux","id":575083,"avatar_url":"https://avatars.githubusercontent.com/u/575083?v=3","gravatar_id":"","url":"https://api.github.com/users/zfsonlinux","html_url":"https://github.com/zfsonlinux","followers_url":"https://api.github.com/users/zfsonlinux/followers","following_url":"https://api.github.com/users/zfsonlinux/following{/other_user}","gists_url":"https://api.github.com/users/zfsonlinux/gists{/gist_id}","starred_url":"https://api.github.com/users/zfsonlinux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zfsonlinux/subscriptions","organizations_url":"https://api.github.com/users/zfsonlinux/orgs","repos_url":"https://api.github.com/users/zfsonlinux/repos","events_url":"https://api.github.com/users/zfsonlinux/events{/privacy}","received_events_url":"https://api.github.com/users/zfsonlinux/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/zfsonlinux/zfs","description":"ZFS on Linux - the official OpenZFS implementation for Linux.","fork":false,"url":"https://api.github.com/repos/zfsonlinux/zfs","forks_url":"https://api.github.com/repos/zfsonlinux/zfs/forks","keys_url":"https://api.github.com/repos/zfsonlinux/zfs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zfsonlinux/zfs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zfsonlinux/zfs/teams","hooks_url":"https://api.github.com/repos/zfsonlinux/zfs/hooks","issue_events_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/events{/number}","events_url":"https://api.github.com/repos/zfsonlinux/zfs/events","assignees_url":"https://api.github.com/repos/zfsonlinux/zfs/assignees{/user}","branches_url":"https://api.github.com/repos/zfsonlinux/zfs/branches{/branch}","tags_url":"https://api.github.com/repos/zfsonlinux/zfs/tags","blobs_url":"https://api.github.com/repos/zfsonlinux/zfs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zfsonlinux/zfs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zfsonlinux/zfs/git/refs{/sha}","trees_url":"https://api.github.com/repos/zfsonlinux/zfs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zfsonlinux/zfs/statuses/{sha}","languages_url":"https://api.github.com/repos/zfsonlinux/zfs/languages","stargazers_url":"https://api.github.com/repos/zfsonlinux/zfs/stargazers","contributors_url":"https://api.github.com/repos/zfsonlinux/zfs/contributors","subscribers_url":"https://api.github.com/repos/zfsonlinux/zfs/subscribers","subscription_url":"https://api.github.com/repos/zfsonlinux/zfs/subscription","commits_url":"https://api.github.com/repos/zfsonlinux/zfs/commits{/sha}","git_commits_url":"https://api.github.com/repos/zfsonlinux/zfs/git/commits{/sha}","comments_url":"https://api.github.com/repos/zfsonlinux/zfs/comments{/number}","issue_comment_url":"https://api.github.com/repos/zfsonlinux/zfs/issues/comments{/number}","contents_url":"https://api.github.com/repos/zfsonlinux/zfs/contents/{+path}","compare_url":"https://api.github.com/repos/zfsonlinux/zfs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zfsonlinux/zfs/merges","archive_url":"https://api.github.com/repos/zfsonlinux/zfs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zfsonlinux/zfs/downloads","issues_url":"https://api.github.com/repos/zfsonlinux/zfs/issues{/number}","pulls_url":"https://api.github.com/repos/zfsonlinux/zfs/pulls{/number}","milestones_url":"https://api.github.com/repos/zfsonlinux/zfs/milestones{/number}","notifications_url":"https://api.github.com/repos/zfsonlinux/zfs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zfsonlinux/zfs/labels{/name}","releases_url":"https://api.github.com/repos/zfsonlinux/zfs/releases{/id}","deployments_url":"https://api.github.com/repos/zfsonlinux/zfs/deployments","created_at":"2009-12-14T20:20:34Z","updated_at":"2016-09-03T13:57:37Z","pushed_at":"2016-09-03T14:04:51Z","git_url":"git://github.com/zfsonlinux/zfs.git","ssh_url":"git@github.com:zfsonlinux/zfs.git","clone_url":"https://github.com/zfsonlinux/zfs.git","svn_url":"https://github.com/zfsonlinux/zfs","homepage":"http://zfsonlinux.org/","size":58926,"stargazers_count":2021,"watchers_count":2021,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":507,"mirror_url":null,"open_issues_count":1036,"forks":507,"open_issues":1036,"watchers":2021,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/zfsonlinux/zfs/pulls/3983"},"html":{"href":"https://github.com/zfsonlinux/zfs/pull/3983"},"issue":{"href":"https://api.github.com/repos/zfsonlinux/zfs/issues/3983"},"comments":{"href":"https://api.github.com/repos/zfsonlinux/zfs/issues/3983/comments"},"review_comments":{"href":"https://api.github.com/repos/zfsonlinux/zfs/pulls/3983/comments"},"review_comment":{"href":"https://api.github.com/repos/zfsonlinux/zfs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/zfsonlinux/zfs/pulls/3983/commits"},"statuses":{"href":"https://api.github.com/repos/zfsonlinux/zfs/statuses/0a0bb48046d0c1de377a57c24b24bd7609c1b190"}}}}
{"actor":{"display_login":"ahrens"}}