)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"67e7c9ec8e95835f919d6f1f10045cf2a589a473","unresolved":false,"context_lines":[{"line_number":9,"context_line":"cleanup for ramdisk failed to umount TMP_BUILD_DIR with device or"},{"line_number":10,"context_line":"resource busy error."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The patch unmount all the mountpoints under TMP_BUILD_DIR and detach"},{"line_number":13,"context_line":"loop device associated with TMP_IMAGE_PATH."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"The unmounts are applied wtih both force(-f) and lazy(-l)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAT3%2F%2FtbE%3D","line":12,"updated":"2014-01-03 03:35:06.000000000","message":"Grammar, this should be \"The patch unmounts all of the mount points under TMP_BUILD_DIR and detaches loop devices associated with TMP_IMAGE_PATH.\"","commit_id":"a9fabd6353923b451a00cb6e5ae0845a1f9ec184"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"567877c5272a4e8ef2533d90027c25c2d1b0317e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"cleanup for ramdisk failed to umount TMP_BUILD_DIR with device or"},{"line_number":10,"context_line":"resource busy error."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The patch unmount all the mountpoints under TMP_BUILD_DIR and detach"},{"line_number":13,"context_line":"loop device associated with TMP_IMAGE_PATH."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"The unmounts are applied wtih both force(-f) and lazy(-l)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAT3%2F%2FtaA%3D","line":12,"in_reply_to":"AAAAT3%2F%2FtbE%3D","updated":"2014-01-03 05:43:26.000000000","message":"Done","commit_id":"a9fabd6353923b451a00cb6e5ae0845a1f9ec184"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"67e7c9ec8e95835f919d6f1f10045cf2a589a473","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"The unmounts are applied wtih both force(-f) and lazy(-l)"},{"line_number":16,"context_line":"options. Force option is only for NFS mounts, it\u0027s kept here since no"},{"line_number":17,"context_line":"harm for lazy option."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I84035e6a003d8135186b2fda3facbd2c37967529"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAT3%2F%2FtbA%3D","line":17,"updated":"2014-01-03 03:35:06.000000000","message":"Thanks. :)","commit_id":"a9fabd6353923b451a00cb6e5ae0845a1f9ec184"},{"author":{"_account_id":7419,"name":"Imre Farkas","email":"farkas.imre@gmail.com","username":"ifarkas"},"change_message_id":"767e6833bb3b55eda15c55a45cb425bb1cee9277","unresolved":false,"context_lines":[{"line_number":12,"context_line":"The patch unmounts all the mountpoints under TMP_BUILD_DIR and"},{"line_number":13,"context_line":"detaches loop devices associated with TMP_IMAGE_PATH."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"The unmounts are applied wtih both force(-f) and lazy(-l)"},{"line_number":16,"context_line":"options. Force option is only for NFS mounts, it\u0027s kept here since no"},{"line_number":17,"context_line":"harm for lazy option."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAT3%2F%2FszM%3D","line":15,"updated":"2014-01-03 08:36:23.000000000","message":"typo: should be \"with\"","commit_id":"3a99bfa2d46b6414e434fc7f128d049154e0cc24"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"10a447a09b7fa57c20f9ce601f4534aba7b6d963","unresolved":false,"context_lines":[{"line_number":12,"context_line":"The patch unmounts all the mountpoints under TMP_BUILD_DIR and"},{"line_number":13,"context_line":"detaches loop devices associated with TMP_IMAGE_PATH."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"The unmounts are applied wtih both force(-f) and lazy(-l)"},{"line_number":16,"context_line":"options. Force option is only for NFS mounts, it\u0027s kept here since no"},{"line_number":17,"context_line":"harm for lazy option."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAT3%2F%2Fsvo%3D","line":15,"in_reply_to":"AAAAT3%2F%2FszM%3D","updated":"2014-01-03 08:52:44.000000000","message":"Done","commit_id":"3a99bfa2d46b6414e434fc7f128d049154e0cc24"}],"lib/common-functions":[{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"6feaff01972b6d34cb805d1a0dbb29ef110a8bdc","unresolved":false,"context_lines":[{"line_number":278,"context_line":"function umount_dirs () {"},{"line_number":279,"context_line":"   local pattern\u003d\"$1\" mnts\u003d\"\""},{"line_number":280,"context_line":"   if [ -n \"$pattern\" ]; then"},{"line_number":281,"context_line":"       mnts\u003d`mount -l | awk \u0027{print $3}\u0027 | grep \"^$pattern\" | sort -r`"},{"line_number":282,"context_line":"   fi"},{"line_number":283,"context_line":"   if [ -n \"$mnts\" ]; then"},{"line_number":284,"context_line":"     sudo umount -f $mnts || true"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAT3%2F%2FwXQ%3D","line":281,"updated":"2014-01-02 09:54:14.000000000","message":"I would prefer to read the list of mounted fs from /proc/mounts\nmount uses /etc/mtab which can be not up to date","commit_id":"fdc6d102217548c21bbf04ac7adf8ba17ccce042"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"20f0a23be1849b10ecf36503433dc5277d347969","unresolved":false,"context_lines":[{"line_number":278,"context_line":"function umount_dirs () {"},{"line_number":279,"context_line":"   local pattern\u003d\"$1\" mnts\u003d\"\""},{"line_number":280,"context_line":"   if [ -n \"$pattern\" ]; then"},{"line_number":281,"context_line":"       mnts\u003d`mount -l | awk \u0027{print $3}\u0027 | grep \"^$pattern\" | sort -r`"},{"line_number":282,"context_line":"   fi"},{"line_number":283,"context_line":"   if [ -n \"$mnts\" ]; then"},{"line_number":284,"context_line":"     sudo umount -f $mnts || true"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAT3%2F%2FwTU%3D","line":281,"in_reply_to":"AAAAT3%2F%2FwXQ%3D","updated":"2014-01-02 10:14:56.000000000","message":"Done","commit_id":"fdc6d102217548c21bbf04ac7adf8ba17ccce042"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"6feaff01972b6d34cb805d1a0dbb29ef110a8bdc","unresolved":false,"context_lines":[{"line_number":281,"context_line":"       mnts\u003d`mount -l | awk \u0027{print $3}\u0027 | grep \"^$pattern\" | sort -r`"},{"line_number":282,"context_line":"   fi"},{"line_number":283,"context_line":"   if [ -n \"$mnts\" ]; then"},{"line_number":284,"context_line":"     sudo umount -f $mnts || true"},{"line_number":285,"context_line":"   fi"},{"line_number":286,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAT3%2F%2FwYM%3D","line":284,"updated":"2014-01-02 09:54:14.000000000","message":"If you are going to use thos for img-functions::umount_image is there any reason to remove the lazy umount? It was included to avoid race conditions umounting /dev.\nhttps://review.openstack.org/#/c/47255/","commit_id":"fdc6d102217548c21bbf04ac7adf8ba17ccce042"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"20f0a23be1849b10ecf36503433dc5277d347969","unresolved":false,"context_lines":[{"line_number":281,"context_line":"       mnts\u003d`mount -l | awk \u0027{print $3}\u0027 | grep \"^$pattern\" | sort -r`"},{"line_number":282,"context_line":"   fi"},{"line_number":283,"context_line":"   if [ -n \"$mnts\" ]; then"},{"line_number":284,"context_line":"     sudo umount -f $mnts || true"},{"line_number":285,"context_line":"   fi"},{"line_number":286,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAT3%2F%2FwTY%3D","line":284,"in_reply_to":"AAAAT3%2F%2FwYM%3D","updated":"2014-01-02 10:14:56.000000000","message":"Done","commit_id":"fdc6d102217548c21bbf04ac7adf8ba17ccce042"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"b0ab1c3bbd0b8c146d6d2e206ef2192bcd0aec1a","unresolved":false,"context_lines":[{"line_number":281,"context_line":"        mnts\u003d`awk \u0027{print $2}\u0027 \u003c /proc/mounts | grep \"^$pattern\" | sort -r`"},{"line_number":282,"context_line":"    fi"},{"line_number":283,"context_line":"    if [ -n \"$mnts\" ]; then"},{"line_number":284,"context_line":"        sudo umount -fl $mnts || true"},{"line_number":285,"context_line":"    fi"},{"line_number":286,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAAT3%2F%2FuyI%3D","line":284,"updated":"2014-01-02 18:53:50.000000000","message":"This adds -f to every umount. I\u0027m not sure it is needed. Can you discuss in the commit message why -f is needed? -l will handle cleanup once any stale open files are closed and other such things, and thus I think it is perfectly suitable and will be just as reliable as -f.","commit_id":"2c666c235ea5c2d42a3d4a9028772f6a31825182"}],"lib/ramdisk-functions":[{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"0637d8e6503a29b153f316ccd90de1abfa9126d2","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  umount_dirs \"$TMP_BUILD_DIR/mnt\""},{"line_number":29,"context_line":"  if [ -f \"$TMP_IMAGE_PATH\" ]; then"},{"line_number":30,"context_line":"      loopdev\u003d`sudo losetup -j \"$TMP_IMAGE_PATH\" | cut -d: -f1`"},{"line_number":31,"context_line":"      if [ -n \"$loopdev\" ]; then"},{"line_number":32,"context_line":"          sudo losetup -d \"$loopdev\""},{"line_number":33,"context_line":"      fi"},{"line_number":34,"context_line":"  fi"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAT3%2F%2F6fA%3D","line":31,"updated":"2013-12-27 08:59:27.000000000","message":"There is a detach_loopback function in common-functions to handle this.","commit_id":"6ab62767f752de30ad7a24ec2cf9048aab0ae806"}]}
