{"push_id":684568525,"size":1,"distinct_size":1,"ref":"refs/heads/release-3.7","head":"271ee96e5c8636ee512a06e0478982874c160a1a","before":"261f2cd3d03b76248c446d047086032ce18ad1c5","commits":[{"sha":"271ee96e5c8636ee512a06e0478982874c160a1a","author":{"email":"4016c024458812ad0ed1ccc433aff0daf07d9647@redhat.com","name":"Raghavendra G"},"message":"cluster/dht: Don't rely on linkto xattr to find destination subvol\nduring phase 2 of migration.\n\nlinkto xattr on source file cannot be relied to find where the data\nfile currently resides. This can happen if there are multiple\nmigrations before phase 2 detection by a client. For eg.,\n\n* migration (M1, node1, node2) starts.\n* application writes some data. DHT correctly stores the state in\n  inode context that phase-1 of migration is in progress\n* migration M1 completes\n* migration (M2, node2, node3) is triggered and completed\n* application resumes writes to the file. DHT identifies it as phase-2\n  of migration. However, linkto xattr on node1 points to node2, but\n  the file is on node3. A lookup correctly identifies node3 as cached\n  subvol\n\nTBD:\n   When we identify phase-2 of a previous migration (say M1), there\n   might be a migration in progress - say (M3, node3, node4). In this\n   case we need to send writes to both (node3, node4) not just\n   node3. Also, the inode state needs to correctly indicate that its in\n   phase-1 of migration. I'll send this as a different patch.\n\nChange-Id: I1a861f766258170af2f6c0935468edb6be687b95\nBUG: 1225809\nSigned-off-by: Raghavendra G <rgowdapp@redhat.com>\nReviewed-on: http://review.gluster.org/10805\nReviewed-on: http://review.gluster.org/10965\nTested-by: Gluster Build System <jenkins@build.gluster.com>","distinct":true,"url":"https://api.github.com/repos/gluster/glusterfs/commits/271ee96e5c8636ee512a06e0478982874c160a1a"}]}