)]}'
{
  "commit": "44d9269481bb43df445adf464b06ff031e67d7ea",
  "tree": "7630c57e9416e7939ce6a177aaa2ff60113adccf",
  "parents": [
    "f57e4502cea471c69782d4790c71d8414ab49a9d"
  ],
  "author": {
    "name": "Martin K. Petersen",
    "email": "martin.petersen@oracle.com",
    "time": "Thu Oct 15 14:45:27 2009 -0400"
  },
  "committer": {
    "name": "James Bottomley",
    "email": "James.Bottomley@suse.de",
    "time": "Fri Dec 04 12:00:16 2009 -0600"
  },
  "message": "[SCSI] scsi_debug: Thin provisioning support\n\nThis version fixes 64-bit modulo on 32-bit as well as inadvertent map\nupdates when TP was disabled.\n\nImplement support for thin provisioning in scsi_debug.  No actual memory\nde-allocation is taking place.  The intent is to emulate a thinly\nprovisioned storage device, not to be one.\n\nThere are four new module options:\n\n - unmap_granularity specifies the granularity at which to track mapped\n   blocks (specified in number of logical blocks).  2048 (1 MB) is a\n   realistic value for disk arrays although some may have a finer\n   granularity.\n\n - unmap_alignment specifies the first LBA which is naturally aligned on\n   an unmap_granularity boundary.\n\n - unmap_max_desc specifies the maximum number of ranges that can be\n   unmapped using one UNMAP command.  If this is 0, only WRITE SAME is\n   supported and UNMAP will cause a check condition.\n\n - unmap_max_blocks specifies the maximum number of blocks that can be\n   unmapped using a single UNMAP command.  Default is 0xffffffff.\n\nThese parameters are reported in the new and extended block limits VPD.\n\nIf unmap_granularity is specified the device is tagged as thin\nprovisioning capable in READ CAPACITY(16).  A bitmap is allocated to\ntrack whether blocks are mapped or not.  A WRITE request will cause a\nblock to be mapped.  So will WRITE SAME unless the UNMAP bit is set.\n\nBlocks can be unmapped using either WRITE SAME or UNMAP.  No accounting\nis done to track partial blocks.  This means that only whole blocks will\nbe marked free.  This is how the array people tell me their firmwares\nwork.\n\nGET LBA STATUS is also supported.  This command reports whether a block\nis mapped or not, and how long the adjoining mapped/unmapped extent is.\n\nThe block allocation bitmap can also be viewed from user space via:\n\n\t/sys/bus/pseudo/drivers/scsi_debug/map\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nAcked-by: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c4103bef41b59cc8988be725fa74822bba9e5d5d",
      "old_mode": 33188,
      "old_path": "drivers/scsi/scsi_debug.c",
      "new_id": "cb4bf16b4e66804cf2040db1f710c22a1da27658",
      "new_mode": 33188,
      "new_path": "drivers/scsi/scsi_debug.c"
    }
  ]
}
