{"action":"created","issue":{"url":"https://api.github.com/repos/gluster/glusterfs/issues/389","repository_url":"https://api.github.com/repos/gluster/glusterfs","labels_url":"https://api.github.com/repos/gluster/glusterfs/issues/389/labels{/name}","comments_url":"https://api.github.com/repos/gluster/glusterfs/issues/389/comments","events_url":"https://api.github.com/repos/gluster/glusterfs/issues/389/events","html_url":"https://github.com/gluster/glusterfs/issues/389","id":287681105,"number":389,"title":"gfapi: New apis as FOPS return the associated (iattr/pre/post) attributes","user":{"login":"kinglongmee","id":2516384,"avatar_url":"https://avatars2.githubusercontent.com/u/2516384?v=4","gravatar_id":"","url":"https://api.github.com/users/kinglongmee","html_url":"https://github.com/kinglongmee","followers_url":"https://api.github.com/users/kinglongmee/followers","following_url":"https://api.github.com/users/kinglongmee/following{/other_user}","gists_url":"https://api.github.com/users/kinglongmee/gists{/gist_id}","starred_url":"https://api.github.com/users/kinglongmee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kinglongmee/subscriptions","organizations_url":"https://api.github.com/users/kinglongmee/orgs","repos_url":"https://api.github.com/users/kinglongmee/repos","events_url":"https://api.github.com/users/kinglongmee/events{/privacy}","received_events_url":"https://api.github.com/users/kinglongmee/received_events","type":"User","site_admin":false},"labels":[{"id":486943795,"url":"https://api.github.com/repos/gluster/glusterfs/labels/CB:%20gfapi","name":"CB: gfapi","color":"006b75","default":false},{"id":624311973,"url":"https://api.github.com/repos/gluster/glusterfs/labels/FA:%20Integration","name":"FA: Integration","color":"1d76db","default":false},{"id":531542552,"url":"https://api.github.com/repos/gluster/glusterfs/labels/Type:Enhancement","name":"Type:Enhancement","color":"c5def5","default":false}],"state":"open","locked":false,"assignee":{"login":"nixpanic","id":400257,"avatar_url":"https://avatars3.githubusercontent.com/u/400257?v=4","gravatar_id":"","url":"https://api.github.com/users/nixpanic","html_url":"https://github.com/nixpanic","followers_url":"https://api.github.com/users/nixpanic/followers","following_url":"https://api.github.com/users/nixpanic/following{/other_user}","gists_url":"https://api.github.com/users/nixpanic/gists{/gist_id}","starred_url":"https://api.github.com/users/nixpanic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nixpanic/subscriptions","organizations_url":"https://api.github.com/users/nixpanic/orgs","repos_url":"https://api.github.com/users/nixpanic/repos","events_url":"https://api.github.com/users/nixpanic/events{/privacy}","received_events_url":"https://api.github.com/users/nixpanic/received_events","type":"User","site_admin":false},"assignees":[{"login":"nixpanic","id":400257,"avatar_url":"https://avatars3.githubusercontent.com/u/400257?v=4","gravatar_id":"","url":"https://api.github.com/users/nixpanic","html_url":"https://github.com/nixpanic","followers_url":"https://api.github.com/users/nixpanic/followers","following_url":"https://api.github.com/users/nixpanic/following{/other_user}","gists_url":"https://api.github.com/users/nixpanic/gists{/gist_id}","starred_url":"https://api.github.com/users/nixpanic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nixpanic/subscriptions","organizations_url":"https://api.github.com/users/nixpanic/orgs","repos_url":"https://api.github.com/users/nixpanic/repos","events_url":"https://api.github.com/users/nixpanic/events{/privacy}","received_events_url":"https://api.github.com/users/nixpanic/received_events","type":"User","site_admin":false},{"login":"kinglongmee","id":2516384,"avatar_url":"https://avatars2.githubusercontent.com/u/2516384?v=4","gravatar_id":"","url":"https://api.github.com/users/kinglongmee","html_url":"https://github.com/kinglongmee","followers_url":"https://api.github.com/users/kinglongmee/followers","following_url":"https://api.github.com/users/kinglongmee/following{/other_user}","gists_url":"https://api.github.com/users/kinglongmee/gists{/gist_id}","starred_url":"https://api.github.com/users/kinglongmee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kinglongmee/subscriptions","organizations_url":"https://api.github.com/users/kinglongmee/orgs","repos_url":"https://api.github.com/users/kinglongmee/repos","events_url":"https://api.github.com/users/kinglongmee/events{/privacy}","received_events_url":"https://api.github.com/users/kinglongmee/received_events","type":"User","site_admin":false},{"login":"poornimag","id":5078864,"avatar_url":"https://avatars3.githubusercontent.com/u/5078864?v=4","gravatar_id":"","url":"https://api.github.com/users/poornimag","html_url":"https://github.com/poornimag","followers_url":"https://api.github.com/users/poornimag/followers","following_url":"https://api.github.com/users/poornimag/following{/other_user}","gists_url":"https://api.github.com/users/poornimag/gists{/gist_id}","starred_url":"https://api.github.com/users/poornimag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/poornimag/subscriptions","organizations_url":"https://api.github.com/users/poornimag/orgs","repos_url":"https://api.github.com/users/poornimag/repos","events_url":"https://api.github.com/users/poornimag/events{/privacy}","received_events_url":"https://api.github.com/users/poornimag/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/gluster/glusterfs/milestones/5","html_url":"https://github.com/gluster/glusterfs/milestone/5","labels_url":"https://api.github.com/repos/gluster/glusterfs/milestones/5/labels","id":2539841,"number":5,"title":"Release 4.1 (LTM)","description":"Long Term Maintenance (LTM) release following the 4.0 release of Gluster. Release Schedule: https://www.gluster.org/community/release-schedule/","creator":{"login":"amarts","id":624969,"avatar_url":"https://avatars3.githubusercontent.com/u/624969?v=4","gravatar_id":"","url":"https://api.github.com/users/amarts","html_url":"https://github.com/amarts","followers_url":"https://api.github.com/users/amarts/followers","following_url":"https://api.github.com/users/amarts/following{/other_user}","gists_url":"https://api.github.com/users/amarts/gists{/gist_id}","starred_url":"https://api.github.com/users/amarts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amarts/subscriptions","organizations_url":"https://api.github.com/users/amarts/orgs","repos_url":"https://api.github.com/users/amarts/repos","events_url":"https://api.github.com/users/amarts/events{/privacy}","received_events_url":"https://api.github.com/users/amarts/received_events","type":"User","site_admin":false},"open_issues":25,"closed_issues":0,"state":"open","created_at":"2017-05-24T05:51:13Z","updated_at":"2018-03-27T18:19:39Z","due_on":"2018-05-30T07:00:00Z","closed_at":null},"comments":11,"created_at":"2018-01-11T06:52:47Z","updated_at":"2018-03-29T07:32:25Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"As nfs-ganesha, a wcc data contains pre/post attributes is return in read/write rpc reply.\r\nnfs-ganesha gets those attributes by two getattr between the real read/write right now.\r\n\r\nBut, gluster has return pre/post attributes from glusterfsd, those attributes are skipped in syncop/gfapi, \r\nif gfapi return them, the upper user (nfs-ganesha) can use them directly without any duplicate getattr.\r\n\r\nRight now, the latest glusterfs fops which return attributres are, (iatt means self-attributes)\r\n- [x] lookup  <**iatt, parentiatt**> (pub_glfs_h_create_from_handle, pub_glfs_h_lookupat, etc)\r\n      glfs apis have return iatt no parentiatt, needs parentiatt too ?\r\n- [x] stat <**iatt**> (pub_glfs_h_stat, etc) \r\n- [x] fstat <**iatt**> (pub_glfs_fstat, etc)\r\n- [ ] truncate <**preiatt, postiatt**> (pub_glfs_truncate,pub_glfs_h_truncate)\r\n- [ ] ftruncate <**preiatt, postiatt**> (pub_glfs_ftruncate, etc)\r\n- [ ] readlink <**iatt**> (pub_glfs_readlink,pub_glfs_h_readlink)\r\n- [ ] mknod <**iatt, preparent, postparent**> (pub_glfs_mknod,pub_glfs_h_mknod)\r\n- [ ] mkdir  <**iatt, preparent, postparent**> (pub_glfs_mkdir,pub_glfs_h_mkdir)\r\n- [ ] unlink <**preparent, postparent**> (pub_glfs_unlink, pub_glfs_h_unlink)\r\n- [ ] rmdir <**preparent, postparent**> (pub_glfs_rmdir, pub_glfs_h_unlink)\r\n- [ ] symlink <**iatt, preparent, postparent**> (pub_glfs_symlink, pub_glfs_h_symlink)\r\n- [ ] rename <**iatt, preoldparent, postoldparent, prenewparent, postnewparent**> (pub_glfs_rename, pub_glfs_h_rename)\r\n- [ ] link <**iatt, preparent, postparent**> (pub_glfs_link, pub_glfs_h_link)\r\n- [ ] create <**iatt, preparent, postparent**> (pub_glfs_creat, pub_glfs_h_creat)\r\n- [ ] readv <**iatt**> (pub_glfs_preadv, pub_glfs_h_anonymous_read, etc)\r\n- [ ] writev <**preiatt, postiatt**> (pub_glfs_pwritev, pub_glfs_h_anonymous_write, etc)\r\n- [ ] fsync  <**preiatt, postiatt**> (pub_glfs_fsync, pub_glfs_fdatasync, etc)\r\n- [ ] setattr  <**preiatt, postiatt**> (pub_glfs_h_setattrs, pub_glfs_chmod, pub_glfs_chown, pub_glfs_lchown, pub_glfs_utimens, pub_glfs_lutimens)\r\n- [ ] fsetattr <**preiatt, postiatt**> (pub_glfs_fchmod, pub_glfs_fchown, pub_glfs_futimens)\r\n- [ ] fallocate <**preiatt, postiatt**> (pub_glfs_fallocate)\r\n- [ ] discard <**preiatt, postiatt**> (pub_glfs_discard, etc)\r\n- [ ] zerofill  <**preiatt, postiatt**> (pub_glfs_zerofill, etc)\r\n- [ ] put <**iatt, preparent, postparent**> (no glfs api)\r\n- [ ] icreate <**iatt**> (no glfs api)\r\n- [ ] namelink <**preiatt, postiatt**> (no glfs api)\r\n\r\nPlans,\r\n1. lookup/stat/fstat, keep it as it is;\r\n2. New apis named as pub_*_plus for return the associated attributes; \r\n3. New apis named as pub_*_aysnc_plus for return the associated attributes in callback function. "},"comment":{"url":"https://api.github.com/repos/gluster/glusterfs/issues/comments/377148870","html_url":"https://github.com/gluster/glusterfs/issues/389#issuecomment-377148870","issue_url":"https://api.github.com/repos/gluster/glusterfs/issues/389","id":377148870,"user":{"login":"prashanthpai","id":411294,"avatar_url":"https://avatars1.githubusercontent.com/u/411294?v=4","gravatar_id":"","url":"https://api.github.com/users/prashanthpai","html_url":"https://github.com/prashanthpai","followers_url":"https://api.github.com/users/prashanthpai/followers","following_url":"https://api.github.com/users/prashanthpai/following{/other_user}","gists_url":"https://api.github.com/users/prashanthpai/gists{/gist_id}","starred_url":"https://api.github.com/users/prashanthpai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prashanthpai/subscriptions","organizations_url":"https://api.github.com/users/prashanthpai/orgs","repos_url":"https://api.github.com/users/prashanthpai/repos","events_url":"https://api.github.com/users/prashanthpai/events{/privacy}","received_events_url":"https://api.github.com/users/prashanthpai/received_events","type":"User","site_admin":false},"created_at":"2018-03-29T07:32:25Z","updated_at":"2018-03-29T07:32:25Z","author_association":"CONTRIBUTOR","body":"@amarts @ShyamsundarR \r\n\r\nThis [change](https://review.gluster.org/#/c/19227/) broke libgfapi-python bindings (and is possibly breaking other things elsewhere too). as the signature of default `glfs_fsync` has changed."}}
{"actor":{"display_login":"prashanthpai"}}