)]}'
{
  "commit": "57f1f0874f426a9bdfc5cd3f886113dd5cd17834",
  "tree": "f7938f5c195f7733543d3d86c6ae3c902fd7adef",
  "parents": [
    "ef1ff6b8c08954bc203b59e887d1e580dd91755a"
  ],
  "author": {
    "name": "Zhaolei",
    "email": "zhaolei@cn.fujitsu.com",
    "time": "Wed Sep 23 15:56:10 2009 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Sep 24 07:20:56 2009 -0700"
  },
  "message": "time: add function to convert between calendar time and broken-down time for universal use\n\nThere are many similar code in kernel for one object: convert time between\ncalendar time and broken-down time.\n\nHere is some source I found:\n  fs/ncpfs/dir.c\n  fs/smbfs/proc.c\n  fs/fat/misc.c\n  fs/udf/udftime.c\n  fs/cifs/netmisc.c\n  net/netfilter/xt_time.c\n  drivers/scsi/ips.c\n  drivers/input/misc/hp_sdc_rtc.c\n  drivers/rtc/rtc-lib.c\n  arch/ia64/hp/sim/boot/fw-emu.c\n  arch/m68k/mac/misc.c\n  arch/powerpc/kernel/time.c\n  arch/parisc/include/asm/rtc.h\n  ...\n\nWe can make a common function for this type of conversion, At least we\ncan get following benefit:\n\n1: Make kernel simple and unify\n2: Easy to fix bug in converting code\n3: Reduce clone of code in future\n   For example, I\u0027m trying to make ftrace display walltime,\n   this patch will make me easy.\n\nThis code is based on code from glibc-2.6\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "56787c0933456c560bc98e860da4a989e8437f18",
      "old_mode": 33188,
      "old_path": "include/linux/time.h",
      "new_id": "fe04e5ef6a592ebddf885b2f313323ec5226e452",
      "new_mode": 33188,
      "new_path": "include/linux/time.h"
    },
    {
      "type": "modify",
      "old_id": "0b0a6366c9d482b8cabbbdc3e290087e2622c0bf",
      "old_mode": 33188,
      "old_path": "kernel/time/Makefile",
      "new_id": "ee266620b06ca336a9246489ff9d01d1dd7cd91d",
      "new_mode": 33188,
      "new_path": "kernel/time/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "86628e755f38f82bab7423a2d9f702782bc6c598",
      "new_mode": 33188,
      "new_path": "kernel/time/timeconv.c"
    }
  ]
}
