)]}'
{
  "log": [
    {
      "commit": "b0d3905f333cd7f76617c354e40af7f65c254283",
      "tree": "bc54582ab42c21ec343d2dede9ffbf735fc0423b",
      "parents": [
        "b0e1b91999e3c60b1adf93f7e9c34db980b3e812"
      ],
      "author": {
        "name": "Bryan Huntsman",
        "email": "bryanh@codeaurora.org",
        "time": "Mon Jun 03 18:48:08 2013 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Mon Mar 02 21:14:10 2015 -0600"
      },
      "message": "msm: fix in-tree compilation for perf_trace_counters\n\nIn-tree compilation for arch/arm/mach-msm/perf_trace_counters.c was\nhitting this error:\n\n    In file included from arch/arm/mach-msm/perf_trace_counters.h:127:0,\n                     from arch/arm/mach-msm/perf_trace_counters.c:14:\n    include/trace/define_trace.h:79:43: fatal error: ./perf_trace_counters.h: No such file or directory\n\nInstructions for TRACE_INCLUDE_FILE in include/trace/define_trace.h say\n\"the path is relative to define_trace.h, not the file including it\".\nFix in-tree compilation by making the path relative to define_trace.h.\n\nSigned-off-by: Bryan Huntsman \u003cbryanh@codeaurora.org\u003e\n"
    },
    {
      "commit": "b0e1b91999e3c60b1adf93f7e9c34db980b3e812",
      "tree": "c542ec66a91e69da4abb626bff38184322c67727",
      "parents": [
        "1e83f6864febc1027394ed38e7a24af87a912528",
        "b4d27f2f2e68afea0fc828ba42f41b3efa231e42"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Mon Mar 02 21:12:39 2015 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Mon Mar 02 21:13:53 2015 -0600"
      },
      "message": "Merge remote-tracking branch \u0027cm/cm-12.0\u0027 into HEAD\n\nChange-Id: Ibcea3bd8608b82692494e87b5ff256a254807520\n"
    },
    {
      "commit": "715d05f7c9a84f89d00835c7b6c393bf32f45f6a",
      "tree": "95b234f490e6cecc7f31435b8f99b7aa2c786e6f",
      "parents": [
        "e0cea84ef8c3cf1d417c952633d6a4a07c798709"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Mon Jan 19 11:06:13 2015 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Feb 23 10:53:58 2015 -0500"
      },
      "message": "fs: introduce a generic shutdown ioctl\n\nThis patch introduces a generic ioctl for fs shutdown.\n\nChange-Id: I452ee16b0078a2704b8026962e5bd07b67710c06\n"
    },
    {
      "commit": "e0cea84ef8c3cf1d417c952633d6a4a07c798709",
      "tree": "a57febee5c9aec375c68f3904bcb3599514c32a9",
      "parents": [
        "df20f77453c33fab57d3a2ed67a5723dd27f36d2"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Wed Feb 18 20:43:11 2015 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Feb 23 10:53:57 2015 -0500"
      },
      "message": "f2fs: update from git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git\n\nUpdated as of commit b3b06a14a26af368dd58f9265cf5a9927067b768\n\nChange-Id: I3dfbbf52d069a397de662058bb72bf96c6393bc6\n"
    },
    {
      "commit": "c6ff06ec83644ee83ce45551d5b1d223520c7f2d",
      "tree": "6b84d0f1423a8f2a7da8e075e11d01ef96a9ac58",
      "parents": [
        "f1a3bbab4d1f6bea694950ab534b72993bb83c7d"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 26 13:03:12 2014 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sun Feb 15 09:57:04 2015 -0500"
      },
      "message": "net: support marking accepting TCP sockets\n\nWhen using mark-based routing, sockets returned from accept()\nmay need to be marked differently depending on the incoming\nconnection request.\n\nThis is the case, for example, if different socket marks identify\ndifferent networks: a listening socket may want to accept\nconnections from all networks, but each connection should be\nmarked with the network that the request came in on, so that\nsubsequent packets are sent on the correct network.\n\nThis patch adds a sysctl to mark TCP sockets based on the fwmark\nof the incoming SYN packet. If enabled, and an unmarked socket\nreceives a SYN, then the SYN packet\u0027s fwmark is written to the\nconnection\u0027s inet_request_sock, and later written back to the\naccepted socket when the connection is established.  If the\nsocket already has a nonzero mark, then the behaviour is the same\nas it is today, i.e., the listening socket\u0027s fwmark is used.\n\nBlack-box tested using user-mode linux:\n\n- IPv4/IPv6 SYN+ACK, FIN, etc. packets are routed based on the\n  mark of the incoming SYN packet.\n- The socket returned by accept() is marked with the mark of the\n  incoming SYN packet.\n- Tested with syncookies\u003d1 and syncookies\u003d2.\n\nChange-Id: I5e8c9b989762a93f3eb5a0c1b4df44f62d57f3cb\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\n"
    },
    {
      "commit": "f1a3bbab4d1f6bea694950ab534b72993bb83c7d",
      "tree": "05a73a1b413a92e90a52d961787ad855c3a0d1ed",
      "parents": [
        "60914bc50c6e550dbeaf6ddf044a7888c345de14"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Mar 18 20:52:27 2014 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sun Feb 15 09:57:03 2015 -0500"
      },
      "message": "net: add a sysctl to reflect the fwmark on replies\n\nKernel-originated IP packets that have no user socket associated\nwith them (e.g., ICMP errors and echo replies, TCP RSTs, etc.)\nare emitted with a mark of zero. Add a sysctl to make them have\nthe same mark as the packet they are replying to.\n\nThis allows an administrator that wishes to do so to use\nmark-based routing, firewalling, etc. for these replies by\nmarking the original packets inbound.\n\nTested using user-mode linux:\n- ICMP/ICMPv6 echo replies and errors.\n- TCP RST packets (IPv4 and IPv6).\n\nChange-Id: I95d896647b278d092ef331d1377b959da1deb042\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\n\nConflicts:\n\tDocumentation/networking/ip-sysctl.txt\n"
    },
    {
      "commit": "60914bc50c6e550dbeaf6ddf044a7888c345de14",
      "tree": "519e5eedd074c6854b7d2cc385ceb79a2f221dbc",
      "parents": [
        "da07cddb22c983161d7e7f1039625edf1076ccc2"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 26 19:35:41 2014 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sun Feb 15 09:57:01 2015 -0500"
      },
      "message": "net: ipv6: autoconf routes into per-device tables\n\nCurrently, IPv6 router discovery always puts routes into\nRT6_TABLE_MAIN. This causes problems for connection managers\nthat want to support multiple simultaneous network connections\nand want control over which one is used by default (e.g., wifi\nand wired).\n\nTo work around this connection managers typically take the routes\nthey prefer and copy them to static routes with low metrics in\nthe main table. This puts the burden on the connection manager\nto watch netlink to see if the routes have changed, delete the\nroutes when their lifetime expires, etc.\n\nInstead, this patch adds a per-interface sysctl to have the\nkernel put autoconf routes into different tables. This allows\neach interface to have its own autoconf table, and choosing the\ndefault interface (or using different interfaces at the same\ntime for different types of traffic) can be done using\nappropriate ip rules.\n\nThe sysctl behaves as follows:\n\n- \u003d 0: default. Put routes into RT6_TABLE_MAIN as before.\n- \u003e 0: manual. Put routes into the specified table.\n- \u003c 0: automatic. Add the absolute value of the sysctl to the\n       device\u0027s ifindex, and use that table.\n\nThe automatic mode is most useful in conjunction with\nnet.ipv6.conf.default.accept_ra_rt_table. A connection manager\nor distribution could set it to, say, -100 on boot, and\nthereafter just use IP rules.\n\nChange-Id: I093d39fb06ec413905dc0d0d5792c1bc5d5c73a9\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\n\nConflicts:\n\tinclude/linux/ipv6.h\n\tnet/ipv6/route.c\n"
    },
    {
      "commit": "53d6392f09418b7a61ebf06377a76798821ae29d",
      "tree": "7297c59cd1817e62dc590f11155398c379724a1a",
      "parents": [
        "2b443dcb94a694cbf660ed21e2a9d6244fc92283"
      ],
      "author": {
        "name": "Hannes Frederic Sowa",
        "email": "hannes@stressinduktion.org",
        "time": "Fri Jan 23 12:01:26 2015 +0100"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sun Feb 15 09:56:50 2015 -0500"
      },
      "message": "ipv4: try to cache dst_entries which would cause a redirect\n\nNot caching dst_entries which cause redirects could be exploited by hosts\non the same subnet, causing a severe DoS attack. This effect aggravated\nsince commit f88649721268999 (\"ipv4: fix dst race in sk_dst_get()\").\n\nLookups causing redirects will be allocated with DST_NOCACHE set which\nwill force dst_release to free them via RCU.  Unfortunately waiting for\nRCU grace period just takes too long, we can end up with \u003e1M dst_entries\nwaiting to be released and the system will run OOM. rcuos threads cannot\ncatch up under high softirq load.\n\nAttaching the flag to emit a redirect later on to the specific skb allows\nus to cache those dst_entries thus reducing the pressure on allocation\nand deallocation.\n\nThis issue was discovered by Marcelo Leitner.\n\nCc: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Marcelo Leitner \u003cmleitner@redhat.com\u003e\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: Hannes Frederic Sowa \u003channes@stressinduktion.org\u003e\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\nConflicts:\n\tinclude/net/ip.h\n\tnet/ipv4/route.c\n\nChange-Id: I53e4b500a4db2f5fece937a42a3bd810b2640c44\n"
    },
    {
      "commit": "ae436e93e3c0f5f90e0cb32a78e684964eabe420",
      "tree": "703dd8f400bd239ead2fe3d3074339e9694e813f",
      "parents": [
        "db13521323cf9f3d03240a031a07c9687269d2cf"
      ],
      "author": {
        "name": "Hannes Frederic Sowa",
        "email": "hannes@stressinduktion.org",
        "time": "Fri Jan 23 12:01:26 2015 +0100"
      },
      "committer": {
        "name": "Brinly Taylor",
        "email": "uberlaggydarwin@gmail.com",
        "time": "Thu Feb 05 08:46:17 2015 +1030"
      },
      "message": "ipv4: try to cache dst_entries which would cause a redirect\n\nNot caching dst_entries which cause redirects could be exploited by hosts\non the same subnet, causing a severe DoS attack. This effect aggravated\nsince commit f88649721268999 (\"ipv4: fix dst race in sk_dst_get()\").\n\nLookups causing redirects will be allocated with DST_NOCACHE set which\nwill force dst_release to free them via RCU.  Unfortunately waiting for\nRCU grace period just takes too long, we can end up with \u003e1M dst_entries\nwaiting to be released and the system will run OOM. rcuos threads cannot\ncatch up under high softirq load.\n\nAttaching the flag to emit a redirect later on to the specific skb allows\nus to cache those dst_entries thus reducing the pressure on allocation\nand deallocation.\n\nThis issue was discovered by Marcelo Leitner.\n\nCc: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Marcelo Leitner \u003cmleitner@redhat.com\u003e\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: Hannes Frederic Sowa \u003channes@stressinduktion.org\u003e\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\nConflicts:\n\tinclude/net/ip.h\n\tnet/ipv4/route.c\n\nChange-Id: I53e4b500a4db2f5fece937a42a3bd810b2640c44\n"
    },
    {
      "commit": "acac1ffdf00394383cd76cd1cdcd9d04545ba8ab",
      "tree": "7586873af282935f5113f490fa74c7977d0b27f4",
      "parents": [
        "8d03d55473e83315c628cc6e3309fc304f4713a4"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Thu May 31 16:26:04 2012 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 14:29:42 2015 -0500"
      },
      "message": "introduce SIZE_MAX\n\ncommit a3860c1c5dd1137db23d7786d284939c5761d517 upstream.\n\nULONG_MAX is often used to check for integer overflow when calculating\nallocation size.  While ULONG_MAX happens to work on most systems, there\nis no guarantee that `size_t\u0027 must be the same size as `long\u0027.\n\nThis patch introduces SIZE_MAX, the maximum value of `size_t\u0027, to improve\nportability and readability for allocation size validation.\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nAcked-by: Alex Elder \u003celder@dreamhost.com\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "8d03d55473e83315c628cc6e3309fc304f4713a4",
      "tree": "6e715399e6a1db04b38c05b1d57039fd488a8aaf",
      "parents": [
        "ccb4b8c0e06a81eaa15ae417cf80a2a27d252906"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Sat Jun 09 02:40:03 2012 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 14:20:58 2015 -0500"
      },
      "message": "slab/mempolicy: always use local policy from interrupt context\n\ncommit e7b691b085fda913830e5280ae6f724b2a63c824 upstream.\n\nslab_node() could access current-\u003emempolicy from interrupt context.\nHowever there\u0027s a race condition during exit where the mempolicy\nis first freed and then the pointer zeroed.\n\nUsing this from interrupts seems bogus anyways. The interrupt\nwill interrupt a random process and therefore get a random\nmempolicy. Many times, this will be idle\u0027s, which noone can change.\n\nJust disable this here and always use local for slab\nfrom interrupts. I also cleaned up the callers of slab_node a bit\nwhich always passed the same argument.\n\nI believe the original mempolicy code did that in fact,\nso it\u0027s likely a regression.\n\nv2: send version with correct logic\nv3: simplify. fix typo.\nReported-by: Arun Sharma \u003casharma@fb.com\u003e\nCc: penberg@kernel.org\nCc: cl@linux.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n[tdmackey@twitter.com: Rework control flow based on feedback from\ncl@linux.com, fix logic, and cleanup current task_struct reference]\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David Mackey \u003ctdmackey@twitter.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "471e11aee28aa195d78ee0b6f935dfa811d94eb2",
      "tree": "c5828d8736b6d4fc48051cf5a055c26bca77655b",
      "parents": [
        "48a32e5fbd4c0bd5df5694fc8fdd2e0c95953f82"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Tue Jul 31 16:45:02 2012 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 14:14:40 2015 -0500"
      },
      "message": "mm: add kmap_to_page()\n\ncommit fcb8996728fb59eddf84678df7cb213b2c9a2e26 upstream.\n\nThis is extracted from Mel Gorman\u0027s commit 5a178119b0fb (\u0027mm: add\nsupport for direct_IO to highmem pages\u0027) upstream.\n\nRequired to backport commit b9cdc88df8e6 (\u0027virtio: 9p: correctly pass\nphysical address to userspace for high pages\u0027).\n\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Yijing Wang \u003cwangyijing@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "55675122daf6c1099b339d2faae4bdc668cf5344",
      "tree": "ad9bcdaf268ade8c009d9763501d8536c7fb4042",
      "parents": [
        "385fa1a3dfc9a909a021b98f17550b4bbf7a0b63"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Fri Aug 22 16:17:38 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:40:02 2015 -0500"
      },
      "message": "f2fs: use macro for code readability\n\nThis patch introduces DEF_NIDS_PER_INODE/GET_ORPHAN_BLOCKS/F2FS_CP_PACKS macro\ninstead of numbers in code for readability.\n\nchange log from v1:\n o fix typo pointed out by Jaegeuk Kim.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "7ec82c4cca030f5e3df1d686dc9f4994fb761edc",
      "tree": "24dda82e868a91487fded588da14525aea59e81d",
      "parents": [
        "15a4557edf8ff94102b1b8a691cba00b4a5fcfe0"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Wed Aug 20 18:36:46 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:40:00 2015 -0500"
      },
      "message": "f2fs: fix incorrect calculation with total/free inode num\n\nTheoretically, our total inodes number is the same as total node number, but\nthere are three node ids are reserved in f2fs, they are 0, 1 (node nid), and 2\n(meta nid), and they should never be used by user, so our total/free inode\nnumber calculated in -\u003estatfs is wrong.\n\nThis patch indroduces F2FS_RESERVED_NODE_NUM and then fixes this issue by\nrecalculating total/free inode number with the macro.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "9f64de73b8363c4f104af4782f5e9b932ccc87a2",
      "tree": "128ce3c214e3b972f19a50c840405226556ed388",
      "parents": [
        "0b14d477f193ec2af926b1e17cb759bbedbe208c"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Thu Jul 31 21:11:22 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:39:07 2015 -0500"
      },
      "message": "f2fs: add tracepoint for f2fs_direct_IO\n\nThis patch adds a tracepoint for f2fs_direct_IO.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n\nConflicts:\n\tfs/f2fs/data.c\n\nChange-Id: I4153a8bd8bd5fb46c42c2917ec3405e3b4a4dce8\n"
    },
    {
      "commit": "90421d2b5a3cd5f96dd6658434a02532a411c969",
      "tree": "2ee68425819ae94e6e3eb81455185741941d592a",
      "parents": [
        "1e3c2db7ff60a5005f21fa315986d18d0d43b62a"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Fri Jul 25 17:46:10 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:39:03 2015 -0500"
      },
      "message": "f2fs: add tracepoint for f2fs_issue_flush\n\nThis patch adds a tracepoint for f2fs_issue_flush.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "97e8a34931f1549b4f0bf66a2a171a9177020d25",
      "tree": "9e8b8e428f7ac85d7a4a6668131689163f500d76",
      "parents": [
        "30446592ff797f220ee14aa523646e51f66360ea"
      ],
      "author": {
        "name": "Dan Pasanen",
        "email": "dan.pasanen@gmail.com",
        "time": "Mon Aug 25 19:11:31 2014 -0500"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:38:11 2015 -0500"
      },
      "message": "Revert \"f2fs: resync with upstream 3.4 branch (forced update)\"\n\nThis reverts commit 6a1be380100e402aacca6a0a3ac829c059768d79.\n"
    },
    {
      "commit": "30446592ff797f220ee14aa523646e51f66360ea",
      "tree": "e1ad52299dbe6d463fe68b5eff32a5c8b9c20757",
      "parents": [
        "f3f030d1bcfad3165cb8b19709345bb05d1e81bf"
      ],
      "author": {
        "name": "Evan McClain",
        "email": "aeroevan@gmail.com",
        "time": "Fri Aug 08 08:58:58 2014 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:37:57 2015 -0500"
      },
      "message": "f2fs: resync with upstream 3.4 branch (forced update)\n\nChange-Id: I0307382d983e8ef806cfdfe57dcde500fd060995\n"
    },
    {
      "commit": "f3f030d1bcfad3165cb8b19709345bb05d1e81bf",
      "tree": "9e8b8e428f7ac85d7a4a6668131689163f500d76",
      "parents": [
        "5d8bad1c6711707e2d373e43d93b39c92228b59f"
      ],
      "author": {
        "name": "Evan McClain",
        "email": "aeroevan@gmail.com",
        "time": "Thu Jul 17 21:16:35 2014 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:37:51 2015 -0500"
      },
      "message": "f2fs: Update to proper 3.4 support\n\nhttp://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs.git/log/?h\u003dlinux-3.4\n\nChange-Id: Ica17871e847d4807c7ef24ea77dd4bff5451f5c7\n\nConflicts:\n\tfs/f2fs/f2fs.h\n"
    },
    {
      "commit": "c8f5ffb072797e95452cb27bc2ab7571b1aa4942",
      "tree": "cf3cf82f4c991527e07aa3e0e5286ca317285248",
      "parents": [
        "53826b575fc02687d3a444ed57a75cd31e561873"
      ],
      "author": {
        "name": "Changman Lee",
        "email": "cm224.lee@samsung.com",
        "time": "Mon May 12 12:27:43 2014 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:37:36 2015 -0500"
      },
      "message": "f2fs: large volume support\n\nf2fs\u0027s cp has one page which consists of struct f2fs_checkpoint and\nversion bitmap of sit and nat. To support lots of segments, we need more\nblocks for sit bitmap. So let\u0027s arrange sit bitmap as following:\n+-----------------+------------+\n| f2fs_checkpoint | sit bitmap |\n| + nat bitmap    |            |\n+-----------------+------------+\n0                 4k        N blocks\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\n[Jaegeuk Kim: simple code change for readability]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "2568ffc2a36317fb02a6007c98cb10d1a4d56792",
      "tree": "24c12e535ff3393498746f41acb59ef94426458e",
      "parents": [
        "26d712d5df37ae866a87a200d6f5599b4ac344c6"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Wed May 28 08:56:09 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:37:34 2015 -0500"
      },
      "message": "f2fs: avoid overflow when large directory feathure is enabled\n\nWhen large directory feathure is enable, We have one case which could cause\noverflow in dir_buckets() as following:\nspecial case: level + dir_level \u003e\u003d 32 and level \u003c MAX_DIR_HASH_DEPTH / 2.\n\nHere we define MAX_DIR_BUCKETS to limit the return value when the condition\ncould trigger potential overflow.\n\nChanges from V1\n o modify description of calculation in f2fs.txt suggested by Changman Lee.\n\nSuggested-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "12d38fc533c4c61b2d5c2b2bae2cc3b1806a19da",
      "tree": "cb3c6a4ac1614e1f63d7fe07df47a26327f24108",
      "parents": [
        "b4d854945565d7e28a2e449edcf627ec602ace46"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Tue May 06 16:53:08 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:37:32 2015 -0500"
      },
      "message": "f2fs: add a tracepoint for f2fs_read_data_page\n\nThis patch adds a tracepoint for f2fs_read_data_page to trace when page is\nreaded by user.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n"
    },
    {
      "commit": "b4d854945565d7e28a2e449edcf627ec602ace46",
      "tree": "1fb534ff18ae6722d3b7dedd81b6c904d71ab6f4",
      "parents": [
        "327cb6d992db57e0a3d35b3ddc758d6f9e185f08"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Tue May 06 16:51:24 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:37:31 2015 -0500"
      },
      "message": "f2fs: add a tracepoint for f2fs_write_{meta,node,data}_pages\n\nThis patch adds a tracepoint for f2fs_write_{meta,node,data}_pages to trace when\npages are fsyncing/flushing.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n"
    },
    {
      "commit": "327cb6d992db57e0a3d35b3ddc758d6f9e185f08",
      "tree": "f66b17e7d8d2dbb0f07e8a47550af504d5d8f2a4",
      "parents": [
        "3f1ac6d5a758a5def38e6ba266dd89903e2f12e7"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Tue May 06 16:48:26 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:37:30 2015 -0500"
      },
      "message": "f2fs: add a tracepoint for f2fs_write_{meta,node,data}_page\n\nThis patch adds a tracepoint for f2fs_write_{meta,node,data}_page to trace when\npage is writting out.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n"
    },
    {
      "commit": "3f1ac6d5a758a5def38e6ba266dd89903e2f12e7",
      "tree": "12bed9278e39e5ec416ccd77037531cd9c0e847c",
      "parents": [
        "df7a596a1ef7a871c2c2803b281701cdc6c7c2fd"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Tue May 06 16:47:23 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:37:19 2015 -0500"
      },
      "message": "f2fs: add a tracepoint for f2fs_write_end\n\nThis patch adds a tracepoint for f2fs_write_end to trace write op of user.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n"
    },
    {
      "commit": "df7a596a1ef7a871c2c2803b281701cdc6c7c2fd",
      "tree": "a8ad3dc8c8be00fcdc083d0ffc841ad8dc5b763c",
      "parents": [
        "29a0d20f9a7763bea15134497525890cda9730b3"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Tue May 06 16:46:04 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:37:00 2015 -0500"
      },
      "message": "f2fs: add a tracepoint for f2fs_write_begin\n\nThis patch adds a tracepoint for f2fs_write_begin to trace write op of user.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n"
    },
    {
      "commit": "90e712d7569ced128aea323fbdfb2cfd28a70e32",
      "tree": "566a90bca1cefe9b9e5324e1e8c0e31ae3f3486e",
      "parents": [
        "8edabc7461f7bb1ec63e332c27cd71c1019aeb4f"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Sat Apr 26 19:59:52 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:36:50 2015 -0500"
      },
      "message": "f2fs: introduce help macro ADDRS_PER_PAGE()\n\nIntroduce help macro ADDRS_PER_PAGE() to get the number of address pointers in\ndirect node or inode.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n"
    },
    {
      "commit": "008f8a1516b6a6ba6a25ea2068ae208da62bc1fa",
      "tree": "21a5d7267f6190b757e3efcef486f92dd5004458",
      "parents": [
        "158c19e3ccf2eb5c1fb0421fd328847fd254c5ce"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk.kim@samsung.com",
        "time": "Thu Feb 27 18:20:00 2014 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:35:12 2015 -0500"
      },
      "message": "f2fs: introduce large directory support\n\nThis patch introduces an i_dir_level field to support large directory.\n\nPreviously, f2fs maintains multi-level hash tables to find a dentry quickly\nfrom a bunch of chiild dentries in a directory, and the hash tables consist of\nthe following tree structure as below.\n\nIn Documentation/filesystems/f2fs.txt,\n\n----------------------\nA : bucket\nB : block\nN : MAX_DIR_HASH_DEPTH\n----------------------\n\nlevel #0   | A(2B)\n           |\nlevel #1   | A(2B) - A(2B)\n           |\nlevel #2   | A(2B) - A(2B) - A(2B) - A(2B)\n     .     |   .       .       .       .\nlevel #N/2 | A(2B) - A(2B) - A(2B) - A(2B) - A(2B) - ... - A(2B)\n     .     |   .       .       .       .\nlevel #N   | A(4B) - A(4B) - A(4B) - A(4B) - A(4B) - ... - A(4B)\n\nBut, if we can guess that a directory will handle a number of child files,\nwe don\u0027t need to traverse the tree from level #0 to #N all the time.\nSince the lower level tables contain relatively small number of dentries,\nthe miss ratio of the target dentry is likely to be high.\n\nIn order to avoid that, we can configure the hash tables sparsely from level #0\nlike this.\n\nlevel #0   | A(2B) - A(2B) - A(2B) - A(2B)\n\nlevel #1   | A(2B) - A(2B) - A(2B) - A(2B) - A(2B) - ... - A(2B)\n     .     |   .       .       .       .\nlevel #N/2 | A(2B) - A(2B) - A(2B) - A(2B) - A(2B) - ... - A(2B)\n     .     |   .       .       .       .\nlevel #N   | A(4B) - A(4B) - A(4B) - A(4B) - A(4B) - ... - A(4B)\n\nWith this structure, we can skip the ineffective tree searches in lower level\nhash tables.\n\nThis patch adds just a facility for this by introducing i_dir_level in\nf2fs_inode.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n"
    },
    {
      "commit": "b1a94e804ff55351101ea9ae7797c874ab92ef42",
      "tree": "3108bedfcc1eb99c4775bfc92ec99a09d3d9b06f",
      "parents": [
        "8005ecc7ea4f6004f217a39425a241ac8a63633c"
      ],
      "author": {
        "name": "Changman Lee",
        "email": "cm224.lee@samsung.com",
        "time": "Fri Nov 15 10:42:51 2013 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:06:08 2015 -0500"
      },
      "message": "f2fs: Update to version in 3.14\n\nf2fs: introduce __find_rev_next(_zero)_bit\n\nWhen f2fs_set_bit is used, in a byte MSB and LSB is reversed,\nin that case we can use __find_rev_next_bit or __find_rev_next_zero_bit.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\n[Jaegeuk Kim: change the function names]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: improve searching speed of __next_free_blkoff\n\nTo find a zero bit using the result of OR operation between ckpt_valid_map\nand cur_valid_map is more fast than find a zero bit in each bitmap.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\n[Jaegeuk Kim: adjust changed function name]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a slab cache entry for small discards\n\nThis patch adds a slab cache entry for small discards.\n\nEach entry consists of:\n\nstruct discard_entry {\n\tstruct list_head list;\t/* list head */\n\tblock_t blkaddr;\t/* block address to be discarded */\n\tint len;\t\t/* # of consecutive blocks of the discard */\n};\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add key functions for small discards\n\nThis patch adds key functions to activate the small discard feature.\n\nNote that this procedure is conducted during the checkpoint only.\n\nIn flush_sit_entries(), when a new dirty sit entry is flushed, f2fs calls\nadd_discard_addrs() which searches candidates to be discarded.\nThe candidates should be marked *invalidated* and also previous checkpoint\nrecognizes it as *valid*.\n\nAt the end of a checkpoint procedure, f2fs throws discards based on the\ndiscard entry list.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a sysfs entry to control max_discards\n\nIf frequent small discards are issued to the device, the performance would\nbe degraded significantly.\nSo, this patch adds a sysfs entry to control the number of discards to be\nissued during a checkpoint procedure.\n\nBy default, f2fs does not issue any small discards, which means max_discards\nis zero.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce f2fs_issue_discard() to clean up\n\nChange log from v1:\n o fix 32bit drops reported by Dan Carpenter\n\nThis patch adds f2fs_issue_discard() to clean up blkdev_issue_discard() flows.\n\nDan carpenter reported:\n\"block_t is a 32 bit type and sector_t is a 64 bit type.  The upper 32\nbits of the sector_t are not used because the shift will wrap.\"\n\nBug-Reported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a tracepoint for f2fs_issue_discard\n\nThis patch adds a tracepoint for f2fs_issue_discard.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: use f2fs_put_page to release page for uniform style\n\nWe should use f2fs_put_page to release page for uniform style of f2fs code.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: clean up the do_submit_bio flow\n\nThis patch introduces PAGE_TYPE_OF_BIO() and cleans up do_submit_bio() with it.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: use sbi-\u003ewrite_mutex for write bios\n\nThis patch removes an unnecessary semaphore (i.e., sbi-\u003ebio_sem).\nThere is no reason to use the semaphore when f2fs submits read and write IOs.\nInstead, let\u0027s use a write mutex and cover the sbi-\u003ebio[] by the lock.\n\nChange log from v1:\n o split write_mutex suggested by Chao Yu\n\nChao described,\n\"All DATA/NODE/META bio buffers in superblock is protected by\n\u0027sbi-\u003ewrite_mutex\u0027, but each bio buffer area is independent, So we\nshould split write_mutex to three for DATA/NODE/META.\"\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: disable the extent cache ops on high fragmented files\n\nThe f2fs manages an extent cache to search a number of consecutive data blocks\nvery quickly.\n\nHowever it conducts unnecessary cache operations if the file is highly\nfragmented with no valid extent cache.\n\nIn such the case, we don\u0027t need to handle the extent cache, but just can disable\nthe cache facility.\n\nNevertheless, this patch gives one more chance to enable the extent cache.\n\nFor example,\n1. create a file\n2. write data sequentially which produces a large valid extent cache\n3. update some data, resulting in a fragmented extent\n4. if the fragmented extent is too small, then drop extent cache\n5. close the file\n\n6. open the file again\n7. give another chance to make a new extent cache\n8. write data sequentially again which creates another big extent cache.\n...\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce a bio array for per-page write bios\n\nThe f2fs has three bio types, NODE, DATA, and META, and manages some data\nstructures per each bio types.\n\nThe codes are a little bit messy, thus, this patch introduces a bio array\nwhich groups individual data structures as follows.\n\nstruct f2fs_bio_info {\n\tstruct bio *bio;\t\t/* bios to merge */\n\tsector_t last_block_in_bio;\t/* last block number */\n\tstruct mutex io_mutex;\t\t/* mutex for bio */\n};\n\nstruct f2fs_sb_info {\n\t...\n\tstruct f2fs_bio_info write_io[NR_PAGE_TYPE];\t/* for write bios */\n\t...\n};\n\nThe code changes from this new data structure are trivial.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert remove_inode_page to void\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert dev_valid_block_count to void\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert inc/dec_valid_node_count to inc/dec one count\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: simplify write_orphan_inodes for better readable\n\nSimplify write_orphan_inodes for better readable. Because we hold the\norphan_inode_mutex, so it\u0027s safe to use list_for_each_entry instead of\nlist_for_each_safe.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: move the list_head initialization into the lock protection region\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a new function to support for merging contiguous read\n\nFor better read performance, we add a new function to support for merging\ncontiguous read as the one for write.\n\nv1--\u003ev2:\n o add declarations here as Gu Zheng suggested.\n o use new structure f2fs_bio_info introduced by Jaegeuk Kim.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nAcked-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\n\nf2fs: merge read IOs at ra_nat_pages()\n\nChange log from v1:\n  o add mark_page_accessed() not to reclaim the nat pages.\n\nThis patch changes the policy of submitting read bios at ra_nat_pages.\n\nPreviously, f2fs submits small read bios with block plugging.\nBut, with this patch, f2fs itself merges read bios first and then submits a\nlarge bio, which can reduce the bio handling overheads.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: simplify IS_DATASEG and IS_NODESEG macro\n\nIt is not efficient comparing each segment type to find node or data.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\n[Jaegeuk Kim: remove unnecessary white spaces]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: adds a tracepoint for submit_read_page\n\nThis patch adds a tracepoint for submit_read_page.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: integrate tracepoints of f2fs_submit_read(_write)_page]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: adds a tracepoint for f2fs_submit_read_bio\n\nThis patch adds a tracepoint for f2fs_submit_read_bio.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: integrate tracepoints of f2fs_submit_read(_write)_bio]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: read contiguous sit entry pages by merging for mount performance\n\nPreviously we read sit entries page one by one, this method lost the chance\nof reading contiguous page together. So we read pages as contiguous as\npossible for better mount performance.\n\nchange log:\n o merge judgements/use \u0027Continue\u0027 or \u0027Break\u0027 instead of \u0027Goto\u0027 as Gu Zheng\n   suggested.\n o add mark_page_accessed() before release page to delay VM reclaiming.\n o remove \u0027*order\u0027 for simplification of function as Jaegeuk Kim suggested.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: fix a bug on the block address calculation]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid lock debugging overhead\n\nIf CONFIG_F2FS_CHECK_FS is unset, we don\u0027t need to add any debugging overhead.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a new function: f2fs_reserve_block()\n\nAdd the function f2fs_reserve_block() to easily reserve new blocks, and\nuse it to clean up more codes.\n\nSigned-off-by: Huajun Li \u003chuajun.li@intel.com\u003e\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Weihong Xu \u003cweihong.xu@intel.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add detailed information of bio types in the tracepoints\n\nThis patch inserts information of bio types in more detail.\nSo, we can now see REQ_META and REQ_PRIO too.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: send REQ_META or REQ_PRIO when reading meta area\n\nLet\u0027s send REQ_META or REQ_PRIO when reading meta area such as NAT/SIT\netc.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add flags and helpers to support inline data\n\nAdd new inode flags F2FS_INLINE_DATA and FI_INLINE_DATA to indicate\nwhether the inode has inline data.\n\nInline data makes use of inode block\u0027s data indices region to save small\nfile. Currently there are 923 data indices in an inode block. Since\ninline xattr has made use of the last 50 indices to save its data, there\nare 873 indices left which can be used for inline data. When\nFI_INLINE_DATA is set, the layout of inode block\u0027s indices region is\nlike below:\n\n+-----------------+\n|                 | Reserved. reserve_new_block() will make use of\n| i_addr[0]       | i_addr[0] when we need to reserve a new data block\n|                 | to convert inline data into regular one\u0027s.\n|-----------------|\n|                 | Used by inline data. A file whose size is less than\n| i_addr[1~872]   | 3488 bytes(~3.4k) and doesn\u0027t reserve extra\n|                 | blocks by fallocate() can be saved here.\n|-----------------|\n|                 |\n| i_addr[873~922] | Reserved for inline xattr\n|                 |\n+-----------------+\n\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Huajun Li \u003chuajun.li@intel.com\u003e\nSigned-off-by: Weihong Xu \u003cweihong.xu@intel.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a new mount option: inline_data\n\nAdd a mount option: inline_data. If the mount option is set,\ndata of New created small files can be stored in their inode.\n\nSigned-off-by: Huajun Li \u003chuajun.li@intel.com\u003e\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Weihong Xu \u003cweihong.xu@intel.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove unnecessary return value\n\nLet\u0027s remove the unnecessary return value.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: fix a potential out of range issue\n\nFix a potential out of range issue introduced by commit:\n22fb72225a\nf2fs: simplify write_orphan_inodes for better readable\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: bug fix on bit overflow from 32bits to 64bits\n\nThis patch fixes some bit overflows by the shift operations.\n\nDan Carpenter reported potential bugs on bit overflows as follows.\n\nfs/f2fs/segment.c:910 submit_write_page()\n\twarn: should \u0027blk_addr \u003c\u003c ((sbi)-\u003elog_blocksize - 9)\u0027 be a 64 bit type?\nfs/f2fs/checkpoint.c:429 get_valid_checkpoint()\n\twarn: should \u00271 \u003c\u003c ()\u0027 be a 64 bit type?\nfs/f2fs/data.c:408 f2fs_readpage()\n\twarn: should \u0027blk_addr \u003c\u003c ((sbi)-\u003elog_blocksize - 9)\u0027 be a 64 bit type?\nfs/f2fs/data.c:457 submit_read_page()\n\twarn: should \u0027blk_addr \u003c\u003c ((sbi)-\u003elog_blocksize - 9)\u0027 be a 64 bit type?\nfs/f2fs/data.c:525 get_data_block_ro()\n\twarn: should \u0027i \u003c\u003c blkbits\u0027 be a 64 bit type?\n\nBug-Reported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove unnecessary condition checks\n\nThis patch removes the unnecessary condition checks on:\n\nfs/f2fs/gc.c:667 do_garbage_collect() warn: \u0027sum_page\u0027 isn\u0027t an ERR_PTR\nfs/f2fs/f2fs.h:795 f2fs_put_page() warn: \u0027page\u0027 isn\u0027t an ERR_PTR\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove unneeded code in punch_hole\n\nBecause FALLOC_FL_PUNCH_HOLE flag must be ORed with FALLOC_FL_KEEP_SIZE\nin fallocate, so we could remove the useless \u0027keep size\u0027 branch code which\nwill never be excuted in punch_hole.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Fan Li \u003cfanofcode.li@samsung.com\u003e\n[Jaegeuk Kim: remove an unnecessary parameter togather]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid to calculate incorrect max orphan number\n\nBecause we will write node summaries when do_checkpoint with umount flag,\nour number of max orphan blocks should minus NR_CURSEG_NODE_TYPE additional.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Shu Tan \u003cshu.tan@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: correct type of wait in struct bio_private\n\nThe void *wait in bio_private is used for waiting completion of checkpoint bio.\nSo we don\u0027t need to use its type as void, but declare it as completion type.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: add description]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: use true and false for boolean variable\n\nThe inode_page_locked should be a boolean variable.\n\nstruct dnode_of_data {\n\tstruct inode *inode;            /* vfs inode pointer */\n\tstruct page *inode_page;        /* its inode page, NULL is possible */\n\tstruct page *node_page;         /* cached direct node page */\n\tnid_t nid;                      /* node id of the direct node block */\n\tunsigned int ofs_in_node;       /* data offset in the node page */\n\u003d\u003d\u003e\tbool inode_page_locked;         /* inode page is locked or not */\n\tblock_t data_blkaddr;           /* block address of the node block */\n};\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: add description]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: check return value of f2fs_readpage in find_data_page\n\nWe should return error if we do not get an updated page in find_date_page\nwhen f2fs_readpage failed.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert recover_orphan_inodes to void\n\nThe recover_orphan_inodes() returns no error all the time, so we don\u0027t need to\ncheck its errors.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: add description]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove the own bi_private allocation\n\nPreviously f2fs allocates its own bi_private data structure all the time even\nthough we don\u0027t use it. But, can we remove this bi_private allocation?\n\nThis patch removes such the additional bi_private allocation.\n\n1. Retrieve f2fs_sb_info from its page-\u003emapping-\u003ehost-\u003ei_sb.\n - This removes the usecases of bi_private in end_io.\n\n2. Use bi_private only when we really need it.\n - The bi_private is used only when the checkpoint procedure is conducted.\n - When conducting the checkpoint, f2fs submits a META_FLUSH bio to wait its bio\ncompletion.\n - Since we have no dependancies to remove bi_private now, let\u0027s just use\n bi_private pointer as the completion pointer.\n\nReviewed-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: refactor bio-related operations\n\nThis patch integrates redundant bio operations on read and write IOs.\n\n1. Move bio-related codes to the top of data.c.\n2. Replace f2fs_submit_bio with f2fs_submit_merged_bio, which handles read\n   bios additionally.\n3. Introduce __submit_merged_bio to submit the merged bio.\n4. Change f2fs_readpage to f2fs_submit_page_bio.\n5. Introduce f2fs_submit_page_mbio to integrate previous submit_read_page and\n   submit_write_page.\n\nReviewed-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com \u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: readahead contiguous pages for restore_node_summary\n\nIf cp has no CP_UMOUNT_FLAG, we will read all pages in whole node segment\none by one, it makes low performance. So let\u0027s merge contiguous pages and\nreadahead for better performance.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: adjust the new bio operations]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove debufs dir if debugfs_create_file() failed\n\nWhen debugfs_create_file() failed in f2fs_create_root_stats(),\ndebugfs_root should be remove.\n\nSigned-off-by: Younger Liu \u003cliuyiyang@hisense.com\u003e\nCc: Younger Liu \u003cyounger.liucn@gmail.com\u003e\nCc: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: replace the debugfs_root with f2fs_debugfs_root\n\nThis minor change for the naming conventions of debugfs_root\nto avoid any possible conflicts to the other filesystem.\n\nSigned-off-by: Younger Liu \u003cyounger.liucn@gmail.com\u003e\nCc: Younger Liu \u003cyounger.liucn@gmail.com\u003e\nCc: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n[Jaegeuk Kim: change the patch name]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: use inner macro GFP_F2FS_ZERO for simplification\n\nUse inner macro GFP_F2FS_ZERO to instead of GFP_NOFS | __GFP_ZERO for\nsimplification of code.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid unneeded page release for correct _count of page\n\nIn find_fsync_dnodes() and recover_data(), our flow is like this:\n\n-\u003ef2fs_submit_page_bio()\n\t-\u003e f2fs_put_page()\n\t\t-\u003e page_cache_release()\t---- page-\u003e_count declined to zero.\n-\u003e__free_pages()\n\t-\u003e put_page_testzero() ---- page-\u003e_count will be declined again.\n\nWe will get a segment fault in put_page_testzero when CONFIG_DEBUG_VM\nis on, or return MM with a bad page with wrong _count num.\n\nSo let\u0027s just release this page.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add unlikely() macro for compiler optimization\n\nAs we know, some of our branch condition will rarely be true. So we could add\n\u0027unlikely\u0027 to let compiler optimize these code, by this way we could drop\nunneeded \u0027jump\u0027 assemble code to improve performance.\n\nchange log:\n o add *unlikely* as many as possible across the whole source files at once\n   suggested by Jaegeuk Kim.\n\nSuggested-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add unlikely() macro for compiler more aggressively\n\nThis patch adds unlikely() macro into the most of codes.\nThe basic rule is to add that when:\n- checking unusual errors,\n- checking page mappings,\n- and the other unlikely conditions.\n\nChange log from v1:\n - Don\u0027t add unlikely for the NULL test and error test: advised by Andi Kleen.\n\nCc: Chao Yu \u003cchao2.yu@samsung.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: merge pages with the same sync_mode flag\n\nPreviously f2fs submits most of write requests using WRITE_SYNC, but f2fs_write_data_pages\nsubmits last write requests by sync_mode flags callers pass.\n\nThis causes a performance problem since continuous pages with different sync flags\ncan\u0027t be merged in cfq IO scheduler(thanks yu chao for pointing it out), and synchronous\nrequests often take more time.\n\nThis patch makes the following modifies to DATA writebacks:\n\n1. every page will be written back using the sync mode caller pass.\n2. only pages with the same sync mode can be merged in one bio request.\n\nThese changes are restricted to DATA pages.Other types of writebacks are modified\nTo remain synchronous.\n\nIn my test with tiotest, f2fs sequence write performance is improved by about 7%-10% ,\nand this patch has no obvious impact on other performance tests.\n\nSigned-off-by: Fan Li \u003cfanofcode.li@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: refactor bio-\u003erw handling\n\nThis patch introduces f2fs_io_info to mitigate the complex parameter list.\n\nstruct f2fs_io_info {\n\tenum page_type type;\t\t/* contains DATA/NODE/META/META_FLUSH */\n\tint rw;\t\t\t\t/* contains R/RS/W/WS */\n\tint rw_flag;\t\t\t/* contains REQ_META/REQ_PRIO */\n}\n\n1. f2fs_write_data_pages\n - DATA\n - WRITE_SYNC is set when wbc-\u003eWB_SYNC_ALL.\n\n2. sync_node_pages\n - NODE\n - WRITE_SYNC all the time\n\n3. sync_meta_pages\n - META\n - WRITE_SYNC all the time\n - REQ_META | REQ_PRIO all the time\n\n ** f2fs_submit_merged_bio() handles META_FLUSH.\n\n4. ra_nat_pages, ra_sit_pages, ra_sum_pages\n - META\n - READ_SYNC\n\nCc: Fan Li \u003cfanofcode.li@samsung.com\u003e\nCc: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: fix the location of tracepoint\n\nWe need to get a trace before submit_bio, since its bi_sector is remapped during\nthe submit_bio.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: missing kmem_cache_destroy for discard_entry\n\ninsmod f2fs.ko is failed after insmod and rmmod firstly.\n\n$ sudo insmod fs/f2fs/f2fs.ko\ninsmod: error inserting \u0027fs/f2fs/f2fs.ko\u0027: -1 Cannot allocate memory\n\n-- dmesg --\nkmem_cache_sanity_check (free_nid): Cache name already exists.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce sysfs entry to control in-place-update policy\n\nThis patch introduces new sysfs entries for users to control the policy of\nin-place-updates, namely IPU, in f2fs.\n\nSometimes f2fs suffers from performance degradation due to its out-of-place\nupdate policy that produces many additional node block writes.\nIf the storage performance is very dependant on the amount of data writes\ninstead of IO patterns, we\u0027d better drop this out-of-place update policy.\n\nThis patch suggests 5 polcies and their triggering conditions as follows.\n\n[sysfs entry name \u003d ipu_policy]\n\n0: F2FS_IPU_FORCE       all the time,\n1: F2FS_IPU_SSR         if SSR mode is activated,\n2: F2FS_IPU_UTIL        if FS utilization is over threashold,\n3: F2FS_IPU_SSR_UTIL    if SSR mode is activated and FS utilization is over\n                        threashold,\n4: F2FS_IPU_DISABLE    disable IPU. (\u003ddefault option)\n\n[sysfs entry name \u003d min_ipu_util]\n\nThis parameter controls the threshold to trigger in-place-updates.\nThe number indicates percentage of the filesystem utilization, and used by\nF2FS_IPU_UTIL and F2FS_IPU_SSR_UTIL policies.\n\nFor more details, see need_inplace_update() in segment.h.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce a new direct_IO write path\n\nPreviously, f2fs doesn\u0027t support direct IOs with high performance, which throws\nevery write requests via the buffered write path, resulting in highly\nperformance degradation due to memory opeations like copy_from_user.\n\nThis patch introduces a new direct IO path in which every write requests are\nprocessed by generic blockdev_direct_IO() with enhanced get_block function.\n\nThe get_data_block() in f2fs handles:\n1. if original data blocks are allocates, then give them to blockdev.\n2. otherwise,\n  a. preallocate requested block addresses\n  b. do not use extent cache for better performance\n  c. give the block addresses to blockdev\n\nThis policy induces that:\n- new allocated data are sequentially written to the disk\n- updated data are randomly written to the disk.\n- f2fs gives consistency on its file meta, not file data.\n\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: write dirty meta pages collectively\n\nThis patch enhances writing dirty meta pages collectively in background.\nDuring the file data writes, it\u0027d better avoid to write small dirty meta pages\nfrequently.\nSo let\u0027s give a chance to collect a number of dirty meta pages for a while.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: move all the bio initialization into __bio_alloc\n\nMove all the bio initialization into __bio_alloc, and some minor cleanups are\nalso added.\n\nv3:\n  Use \u0027bool\u0027 rather than \u0027int\u0027 as Kim suggested.\n\nv2:\n  Use \u0027is_read\u0027 rather than \u0027rw\u0027 as Yu Chao suggested.\n  Remove the needless initialization of bio-\u003ebi_private.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove the rw_flag domain from f2fs_io_info\n\nWhen using the f2fs_io_info in the low level, we still need to merge the\nrw and rw_flag, so use the rw to hold all the io flags directly,\nand remove the rw_flag field.\n\nps.It is based on the previous patch:\nf2fs: move all the bio initialization into __bio_alloc\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: update several comments\n\nUpdate several comments:\n1. use f2fs_{un}lock_op install of mutex_{un}lock_op.\n2. update comment of get_data_block().\n3. update description of node offset.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid to set wrong pino of inode when rename dir\n\nWhen we rename a dir to new name which is not exist previous,\nwe will set pino of parent inode with ino of child inode in f2fs_set_link.\nIt destroy consistency of pino, it should be fixed.\n\nThanks for previous work of Shu Tan.\n\nSigned-off-by: Shu Tan \u003cshu.tan@samsung.com\u003e\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: check filename length in recover_dentry\n\nIn current flow, we will get Null return value of f2fs_find_entry in\nrecover_dentry when name.len is bigger than F2FS_NAME_LEN, and then we\nstill add this inode into its dir entry.\nTo avoid this situation, we must check filename length before we use it.\n\nAnother point is that we could remove the code of checking filename length\nIn f2fs_find_entry, because f2fs_lookup will be called previously to ensure of\nvalidity of filename length.\n\nV2:\n o add WARN_ON() as Jaegeuk Kim suggested.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce F2FS_INODE macro to get f2fs_inode\n\nThis patch introduces F2FS_INODE that returns struct f2fs_inode * from the inode\npage.\nBy using this macro, we can remove unnecessary casting codes like below.\n\n   struct f2fs_inode *ri \u003d \u0026F2FS_NODE(inode_page)-\u003ei;\n-\u003e struct f2fs_inode *ri \u003d F2FS_INODE(inode_page);\n\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: should put the dnode when NEW_ADDR is detected\n\nWhen get_dnode_of_data() in get_data_block() returns a successful dnode, we\nshould put the dnode.\nBut, previously, if its data block address is equal to NEW_ADDR, we didn\u0027t do\nthat, resulting in a deadlock condition.\nSo, this patch splits original error conditions with this case, and then calls\nf2fs_put_dnode before finishing the function.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: check the blocksize before calling generic_direct_IO path\n\nThe f2fs supports 4KB block size. If user requests dwrite with under 4KB data,\nit allocates a new 4KB data block.\nHowever, f2fs doesn\u0027t add zero data into the untouched data area inside the\nnewly allocated data block.\n\nThis incurs an error during the xfstest #263 test as follow.\n\n263 12s ... [failed, exit status 1] - output mismatch (see 263.out.bad)\n\t--- 263.out\t2013-03-09 03:37:15.043967603 +0900\n\t+++ 263.out.bad\t2013-12-27 04:20:39.230203114 +0900\n\t@@ -1,3 +1,976 @@\n\tQA output created by 263\n\tfsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z\n\t-fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z\n\t+fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z\n\t+truncating to largest ever: 0x12a00\n\t+truncating to largest ever: 0x75400\n\t+fallocating to largest ever: 0x79cbf\n\t...\n\t(Run \u0027diff -u 263.out 263.out.bad\u0027 to see the entire diff)\n\tRan: 263\n\tFailures: 263\n\tFailed 1 of 1 tests\n\nIt turns out that, when the test tries to write 2KB data with dio, the new dio\npath allocates 4KB data block without filling zero data inside the remained 2KB\narea. Finally, the output file contains a garbage data for that region.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert max_orphans to a field of f2fs_sb_info\n\nPreviously, we need to calculate the max orphan num when we try to acquire an\norphan inode, but it\u0027s a stable value since the super block was inited. So\nconverting it to a field of f2fs_sb_info and use it directly when needed seems\na better choose.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: key functions to handle inline data\n\nFunctions to implement inline data read/write, and move inline data to\nnormal data block when file size exceeds inline data limitation.\n\nSigned-off-by: Huajun Li \u003chuajun.li@intel.com\u003e\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Weihong Xu \u003cweihong.xu@intel.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: handle inline data operations\n\nHook inline data read/write, truncate, fallocate, setattr, etc.\n\nFiles need meet following 2 requirement to inline:\n 1) file size is not greater than MAX_INLINE_DATA;\n 2) file doesn\u0027t pre-allocate data blocks by fallocate().\n\nFI_INLINE_DATA will not be set while creating a new regular inode because\nmost of the files are bigger than ~3.4K. Set FI_INLINE_DATA only when\ndata is submitted to block layer, ranther than set it while creating a new\ninode, this also avoids converting data from inline to normal data block\nand vice versa.\n\nWhile writting inline data to inode block, the first data block should be\nreleased if the file has a block indexed by i_addr[0].\n\nOn the other hand, when a file operation is appied to a file with inline\ndata, we need to test if this file can remain inline by doing this\noperation, otherwise it should be convert into normal file by reserving\na new data block, copying inline data to this new block and clear\nFI_INLINE_DATA flag. Because reserve a new data block here will make use\nof i_addr[0], if we save inline data in i_addr[0..872], then the first\n4 bytes would be overwriten. This problem can be avoided simply by\nnot using i_addr[0] for inline data.\n\nSigned-off-by: Huajun Li \u003chuajun.li@intel.com\u003e\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Weihong Xu \u003cweihong.xu@intel.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: don\u0027t need to get f2fs_lock_op for the inline_data test\n\nThis patch locates checking the inline_data prior to calling f2fs_lock_op()\nin truncate_blocks(), since getting the lock is unnecessary.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: convert inline_data for punch_hole\n\nIn the punch_hole(), let\u0027s convert inline_data all the time for simplicity and\nto avoid potential deadlock conditions.\nIt is pretty much not a big deal to do this.\n\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: call f2fs_put_page at the error case\n\nIn f2fs_write_begin(), if f2fs_conver_inline_data() returns an error like\n-ENOSPC, f2fs should call f2fs_put_page().\nOtherwise, it is remained as a locked page, resulting in the following bug.\n\n[\u003cffffffff8114657e\u003e] sleep_on_page+0xe/0x20\n[\u003cffffffff81146567\u003e] __lock_page+0x67/0x70\n[\u003cffffffff81157d08\u003e] truncate_inode_pages_range+0x368/0x5d0\n[\u003cffffffff81157ff5\u003e] truncate_inode_pages+0x15/0x20\n[\u003cffffffff8115804b\u003e] truncate_pagecache+0x4b/0x70\n[\u003cffffffff81158082\u003e] truncate_setsize+0x12/0x20\n[\u003cffffffffa02a1842\u003e] f2fs_setattr+0x72/0x270 [f2fs]\n[\u003cffffffff811cdae3\u003e] notify_change+0x213/0x400\n[\u003cffffffff811ab376\u003e] do_truncate+0x66/0xa0\n[\u003cffffffff811ab541\u003e] vfs_truncate+0x191/0x1b0\n[\u003cffffffff811ab5bc\u003e] do_sys_truncate+0x5c/0xa0\n[\u003cffffffff811ab78e\u003e] SyS_truncate+0xe/0x10\n[\u003cffffffff81756052\u003e] system_call_fastpath+0x16/0x1b\n[\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: refactor f2fs_convert_inline_data\n\nChange log from v1:\n o handle NULL pointer of grab_cache_page_write_begin() pointed by Chao Yu.\n\nThis patch refactors f2fs_convert_inline_data to check a couple of conditions\ninternally for deciding whether it needs to convert inline_data or not.\n\nSo, the new f2fs_convert_inline_data initially checks:\n1) f2fs_has_inline_data(), and\n2) the data size to be changed.\n\nIf the inode has inline_data but the size to fill is less than MAX_INLINE_DATA,\nthen we don\u0027t need to convert the inline_data with data allocation.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add the number of inline_data files to status info\n\nThis patch adds the number of inline_data files into the status information.\nNote that the number is reset whenever the filesystem is newly mounted.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add inline_data recovery routine\n\nThis patch adds a inline_data recovery routine with the following policy.\n\n[prev.] [next] of inline_data flag\n   o       o  -\u003e recover inline_data\n   o       x  -\u003e remove inline_data, and then recover data blocks\n   x       o  -\u003e remove inline_data, and then recover inline_data\n   x       x  -\u003e recover data blocks\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: handle errors correctly during f2fs_reserve_block\n\nThe get_dnode_of_data nullifies inode and node page when error is occurred.\n\nThere are two cases that passes inode page into get_dnode_of_data().\n\n1. make_empty_dir()\n    -\u003e get_new_data_page()\n      -\u003e f2fs_reserve_block(ipage)\n\t-\u003e get_dnode_of_data()\n\n2. f2fs_convert_inline_data()\n    -\u003e __f2fs_convert_inline_data()\n      -\u003e f2fs_reserve_block(ipage)\n\t-\u003e get_dnode_of_data()\n\nThis patch adds correct error handling codes when get_dnode_of_data() returns\nan error.\n\nAt first, f2fs_reserve_block() calls f2fs_put_dnode() whenever reserve_new_block\nreturns an error.\nSo, the rule of f2fs_reserve_block() is to nullify inode page when there is any\nerror internally.\n\nFinally, two callers of f2fs_reserve_block() should call f2fs_put_dnode()\nappropriately if they got an error since successful f2fs_reserve_block().\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: fix truncate_partial_nodes bug\n\nThe truncate_partial_nodes puts pages incorrectly in the following two cases.\nNote that the value for argc \u0027depth\u0027 can only be 2 or 3.\nPlease see truncate_inode_blocks() and truncate_partial_nodes().\n\n1) An err is occurred in the first \u0027for\u0027 loop\n  When err is occurred with depth \u003d 2, pages[0] is invalid, so this page doesn\u0027t\n  need to be put. There is no problem, however, when depth is 3, it doesn\u0027t put\n  the pages correctly where pages[0] is valid and pages[1] is invalid.\n  In this case, depth is set to 2 (ref to statemnt depth \u003d i + 1), and then\n  \u0027goto fail\u0027.\n  In label \u0027fail\u0027, for (i \u003d depth - 3; i \u003e\u003d 0; i--) cannot meet the condition\n  because i \u003d -1, so pages[0] cann\u0027t be put.\n\n2) An err happened in the second \u0027for\u0027 loop\n  Now we\u0027ve got pages[0] with depth \u003d 2, or we\u0027ve got pages[0] and pages[1]\n  with depth \u003d 3. When an err is detected, we need \u0027goto fail\u0027 to put such\n  the pages.\n  When depth is 2, in label \u0027fail\u0027, for (i \u003d depth - 3; i \u003e\u003d 0; i--) cann\u0027t\n  meet the condition because i \u003d -1, so pages[0] cann\u0027t be put.\n  When depth is 3, in label \u0027fail\u0027, for (i \u003d depth - 3; i \u003e\u003d 0; i--) can\n  only put pages[0], pages[1] also cann\u0027t be put.\n\nNote that \u0027depth\u0027 has been changed before first \u0027goto fail\u0027 (ref to statemnt\ndepth \u003d i + 1), so passing this modified \u0027depth\u0027 to the tracepoint,\ntrace_f2fs_truncate_partial_nodes, is also incorrect.\n\nSigned-off-by: Shifei Ge \u003cshifei10.ge@samsung.com\u003e\n[Jaegeuk Kim: modify the description and fix one bug]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid to left uninitialized data in page when read inline data\n\nChange log from v1:\n o reduce unneeded memset in __f2fs_convert_inline_data\n\n\u003eFrom 58796be2bd2becbe8d52305210fb2a64e7dd80b6 Mon Sep 17 00:00:00 2001\nFrom: Chao Yu \u003cchao2.yu@samsung.com\u003e\nDate: Mon, 30 Dec 2013 09:21:33 +0800\nSubject: [PATCH] f2fs: avoid to left uninitialized data in page when read\n inline data\n\nWe left uninitialized data in the tail of page when we read an inline data\npage. So let\u0027s initialize left part of the page excluding inline data region.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid to read inline data except first page\n\nHere is a case which could read inline page data not from first page.\n\n1. write inline data\n2. lseek to offset 4096\n3. read 4096 bytes from offset 4096\n\t(read_inline_data read inline data page to non-first page,\n\tAnd previously VFS has add this page to page cache)\n4. ftruncate offset 8192\n5. read 4096 bytes from offset 4096\n\t(we meet this updated page with inline data in cache)\n\nSo we should leave this page with inited data and uptodate flag\nfor this case.\n\nChange log from v1:\n o fix a deadlock bug\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: improve write performance under frequent fsync calls\n\nWhen considering a bunch of data writes with very frequent fsync calls, we\nare able to think the following performance regression.\n\nN: Node IO, D: Data IO, IO scheduler: cfq\n\nIssue    pending IOs\n\t D1 D2 D3 D4\n D1         D2 D3 D4 N1\n D2            D3 D4 N1 N2\n N1            D3 D4 N2 D1\n --\u003e N1 can be selected by cfq becase of the same priority of N and D.\n     Then D3 and D4 would be delayed, resuling in performance degradation.\n\nSo, when processing the fsync call, it\u0027d better give higher priority to data IOs\nthan node IOs by assigning WRITE and WRITE_SYNC respectively.\nThis patch improves the random wirte performance with frequent fsync calls by up\nto 10%.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add a sysfs entry to control max_victim_search\n\nPreviously during SSR and GC, the maximum number of retrials to find a victim\nsegment was hard-coded by MAX_VICTIM_SEARCH, 4096 by default.\n\nThis number makes an effect on IO locality, when SSR mode is activated, which\nresults in performance fluctuation on some low-end devices.\n\nIf max_victim_search \u003d 4, the victim will be searched like below.\n(\"D\" represents a dirty segment, and \"*\" indicates a selected victim segment.)\n\n D1 D2 D3 D4 D5 D6 D7 D8 D9\n[   *       ]\n      [   *    ]\n            [         * ]\n\t                [ ....]\n\nThis patch adds a sysfs entry to control the number dynamically through:\n  /sys/fs/f2fs/$dev/max_victim_search\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove the needless parameter of f2fs_wait_on_page_writeback\n\n\"boo sync\" parameter is never referenced in f2fs_wait_on_page_writeback.\nWe should remove this parameter.\n\nSigned-off-by: Yuan Zhong \u003cyuan.mark.zhong@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: move grabing orphan pages out of protection region\n\nMove grabing orphan block page out of protection region, and grab all\nthe orphan block pages ahead.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\n[Jaegeuk Kim: remove unnecessary code pointed by Chao Yu]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: move alloc new orphan node out of lock protection region\n\nMove alloc new orphan node out of lock protection region.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: use spinlock rather than mutex for better speed\n\nWith the 2 previous changes, all the long time operations are moved out\nof the protection region, so here we can use spinlock rather than mutex\n(orphan_inode_mutex) for lower overhead.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add delimiter to seperate name and value in debug phrase\n\nSupport for f2fs-tools/tools/f2stat to monitor\n/sys/kernel/debug/f2fs/status\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: avoid f2fs_balance_fs call during pageout\n\nThis patch should resolve the following bug.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible irq lock inversion dependency detected ]\n3.13.0-rc5.f2fs+ #6 Not tainted\n---------------------------------------------------------\nkswapd0/41 just changed the state of lock:\n (\u0026sbi-\u003egc_mutex){+.+.-.}, at: [\u003cffffffffa030503e\u003e] f2fs_balance_fs+0xae/0xd0 [f2fs]\nbut this lock took another, RECLAIM_FS-READ-unsafe lock in the past:\n (\u0026sbi-\u003ecp_rwsem){++++.?}\n\nand interrupts could create inverse lock ordering between them.\n\nother info that might help us debug this:\nChain exists of:\n  \u0026sbi-\u003egc_mutex --\u003e \u0026sbi-\u003ecp_mutex --\u003e \u0026sbi-\u003ecp_rwsem\n\n Possible interrupt unsafe locking scenario:\n\n       CPU0                    CPU1\n       ----                    ----\n  lock(\u0026sbi-\u003ecp_rwsem);\n                               local_irq_disable();\n                               lock(\u0026sbi-\u003egc_mutex);\n                               lock(\u0026sbi-\u003ecp_mutex);\n  \u003cInterrupt\u003e\n    lock(\u0026sbi-\u003egc_mutex);\n\n *** DEADLOCK ***\n\nThis bug is due to the f2fs_balance_fs call in f2fs_write_data_page.\nIf f2fs_write_data_page is triggered by wbc-\u003efor_reclaim via kswapd, it should\nnot call f2fs_balance_fs which tries to get a mutex grabbed by original syscall\nflow.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: missing REQ_META and REQ_PRIO when sync_meta_pages(META_FLUSH)\n\nDoing sync_meta_pages with META_FLUSH when checkpoint, we overide rw\nusing WRITE_FLUSH_FUA. At this time, we also should set\nREQ_META|REQ_PRIO.\n\nSigned-off-by: Changman Lee \u003ccm224.lee@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: clean checkpatch warnings\n\nFixed a variety of trivial checkpatch warnings.  The only delta should\nbe some minor formatting on log strings that were split / too long.\n\nSigned-off-by: Chris Fries \u003ccfries@motorola.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: call mark_inode_dirty to flush dirty pages\n\nIf a dentry page is updated, we should call mark_inode_dirty to add the inode\ninto the dirty list, so that its dentry pages are flushed to the disk.\nOtherwise, the inode can be evicted without flush.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: move a branch for code redability\n\nThis patch moves a function in f2fs_delete_entry for code readability.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: add help function META_MAPPING\n\nIntroduce help function META_MAPPING() to get the cache meta blocks\u0027\naddress space.\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: remove the orphan block page array\n\nAs the orphan_blocks may be max to 504, so it is not security\nand rigorous to store such a large array in the kernel stack\nas Dan Carpenter said.\nIn fact, grab_meta_page has locked the page in the page cache,\nand we can use find_get_page() to fetch the page safely in the\ndownstream, so we can remove the page array directly.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: introduce NODE_MAPPING for code consistency\n\nThis patch adds NODE_MAPPING which is similar as META_MAPPING introduced by\nGu Zheng.\n\nCc: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nf2fs: drop obsolete node page when it is truncated\n\nIf a node page is trucated, we\u0027d better drop the page in the node_inode\u0027s page\ncache for better memory footprint.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n\nChange-Id: I1b7c3378b7f7adb13477376164e91ab080b50d8b\n"
    },
    {
      "commit": "8005ecc7ea4f6004f217a39425a241ac8a63633c",
      "tree": "11c815137aac0302817b8b4fd798cfc0ff0877db",
      "parents": [
        "0ada96714fba26853fec00f4d95577c577c6e5ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 13:54:51 2012 -0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 11:05:52 2015 -0500"
      },
      "message": "f2fs: Pull in from upstream 3.13 kernel\n\nMerge tag \u0027for-3.8-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull new F2FS filesystem from Jaegeuk Kim:\n \"Introduce a new file system, Flash-Friendly File System (F2FS), to\n  Linux 3.8.\n\n  Highlights:\n   - Add initial f2fs source codes\n   - Fix an endian conversion bug\n   - Fix build failures on random configs\n   - Fix the power-off-recovery routine\n   - Minor cleanup, coding style, and typos patches\"\n\nFrom the Kconfig help text:\n\n  F2FS is based on Log-structured File System (LFS), which supports\n  versatile \"flash-friendly\" features. The design has been focused on\n  addressing the fundamental issues in LFS, which are snowball effect\n  of wandering tree and high cleaning overhead.\n\n  Since flash-based storages show different characteristics according to\n  the internal geometry or flash memory management schemes aka FTL, F2FS\n  and tools support various parameters not only for configuring on-disk\n  layout, but also for selecting allocation and cleaning algorithms.\n\nand there\u0027s an article by Neil Brown about it on lwn.net:\n\n  http://lwn.net/Articles/518988/\n\n* tag \u0027for-3.8-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (36 commits)\n  f2fs: fix tracking parent inode number\n  f2fs: cleanup the f2fs_bio_alloc routine\n  f2fs: introduce accessor to retrieve number of dentry slots\n  f2fs: remove redundant call to f2fs_put_page in delete entry\n  f2fs: make use of GFP_F2FS_ZERO for setting gfp_mask\n  f2fs: rewrite f2fs_bio_alloc to make it simpler\n  f2fs: fix a typo in f2fs documentation\n  f2fs: remove unused variable\n  f2fs: move error condition for mkdir at proper place\n  f2fs: remove unneeded initialization\n  f2fs: check read only condition before beginning write out\n  f2fs: remove unneeded memset from init_once\n  f2fs: show error in case of invalid mount arguments\n  f2fs: fix the compiler warning for uninitialized use of variable\n  f2fs: resolve build failures\n  f2fs: adjust kernel coding style\n  f2fs: fix endian conversion bugs reported by sparse\n  f2fs: remove unneeded version.h header file from f2fs.h\n  f2fs: update the f2fs document\n  f2fs: update Kconfig and Makefile\n  ...\n\nConflicts:\n\tinclude/uapi/linux/magic.h\n\nMerge tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs bug fixes from Jaegeuk Kim:\n \"This patch-set includes two major bug fixes:\n   - incorrect IUsed provided by *df -i*, and\n   - lookup failure of parent inodes in corner cases.\n\n  [Other Bug Fixes]\n   - Fix error handling routines\n   - Trigger recovery process correctly\n   - Resolve build failures due to missing header files\n\n  [Etc]\n   - Add a MAINTAINERS entry for f2fs\n   - Fix and clean up variables, functions, and equations\n   - Avoid warnings during compilation\"\n\n* tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs:\n  f2fs: unify string length declarations and usage\n  f2fs: clean up unused variables and return values\n  f2fs: clean up the start_bidx_of_node function\n  f2fs: remove unneeded variable from f2fs_sync_fs\n  f2fs: fix fsync_inode list addition logic and avoid invalid access to memory\n  f2fs: remove unneeded initialization of nr_dirty in dirty_seglist_info\n  f2fs: handle error from f2fs_iget_nowait\n  f2fs: fix equation of has_not_enough_free_secs()\n  f2fs: add MAINTAINERS entry\n  f2fs: return a default value for non-void function\n  f2fs: invalidate the node page if allocation is failed\n  f2fs: add missing #include \u003clinux/prefetch.h\u003e\n  f2fs: do f2fs_balance_fs in front of dir operations\n  f2fs: should recover orphan and fsync data\n  f2fs: fix handling errors got by f2fs_write_inode\n  f2fs: fix up f2fs_get_parent issue to retrieve correct parent inode number\n  f2fs: fix wrong calculation on f_files in statfs\n  f2fs: remove set_page_dirty for atomic f2fs_end_io_write\n\nMerge tag \u0027f2fs-for-3.8-rc5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs fixes from Jaegeuk Kim:\n o Support swap file and link generic_file_remap_pages\n o Enhance the bio streaming flow and free section control\n o Major bug fix on recovery routine\n o Minor bug/warning fixes and code cleanups\n\n* tag \u0027f2fs-for-3.8-rc5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (22 commits)\n  f2fs: use _safe() version of list_for_each\n  f2fs: add comments of start_bidx_of_node\n  f2fs: avoid issuing small bios due to several dirty node pages\n  f2fs: support swapfile\n  f2fs: add remap_pages as generic_file_remap_pages\n  f2fs: add __init to functions in init_f2fs_fs\n  f2fs: fix the debugfs entry creation path\n  f2fs: add global mutex_lock to protect f2fs_stat_list\n  f2fs: remove the blk_plug usage in f2fs_write_data_pages\n  f2fs: avoid redundant time update for parent directory in f2fs_delete_entry\n  f2fs: remove redundant call to set_blocksize in f2fs_fill_super\n  f2fs: move f2fs_balance_fs to punch_hole\n  f2fs: add f2fs_balance_fs in several interfaces\n  f2fs: revisit the f2fs_gc flow\n  f2fs: check return value during recovery\n  f2fs: avoid null dereference in f2fs_acl_from_disk\n  f2fs: initialize newly allocated dnode structure\n  f2fs: update f2fs partition info about SIT/NAT layout\n  f2fs: update f2fs document to reflect SIT/NAT layout correctly\n  f2fs: remove unneeded INIT_LIST_HEAD at few places\n  ...\n\nMerge tag \u0027f2fs-for-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs update from Jaegeuk Kim:\n \"[Major bug fixes]\n   o Store device file information correctly\n   o Fix -EIO handling with respect to power-off-recovery\n   o Allocate blocks with global locks\n   o Fix wrong calculation of the SSR cost\n\n  [Cleanups]\n   o Get rid of fake on-stack dentries\n\n  [Enhancement]\n   o Support (un)freeze_fs\n   o Enhance the f2fs_gc flow\n   o Support 32-bit binary execution on 64-bit kernel\"\n\n* tag \u0027f2fs-for-3.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (29 commits)\n  f2fs: avoid build warning\n  f2fs: add compat_ioctl to provide backward compatability\n  f2fs: fix calculation of max. gc cost in the SSR case\n  f2fs: clarify and enhance the f2fs_gc flow\n  f2fs: optimize the return condition for has_not_enough_free_secs\n  f2fs: make an accessor to get sections for particular block type\n  f2fs: mark gc_thread as NULL when thread creation is failed\n  f2fs: name gc task as per the block device\n  f2fs: remove unnecessary gc option check and balance_fs\n  f2fs: remove repeated F2FS_SET_SB_DIRT call\n  f2fs: when check superblock failed, try to check another superblock\n  f2fs: use F2FS_BLKSIZE to judge bloksize and page_cache_size\n  f2fs: add device name in debugfs\n  f2fs: stop repeated checking if cp is needed\n  f2fs: avoid balanc_fs during evict_inode\n  f2fs: remove the use of page_cache_release\n  f2fs: fix typo mistake for data_version description\n  f2fs: reorganize code for ra_node_page\n  f2fs: avoid redundant call to has_not_enough_free_secs in f2fs_gc\n  f2fs: add un/freeze_fs into super_operations\n  ...\n\nMerge tag \u0027f2fs-for-v3.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs updates from Jaegeuk Kim:\n \"This patch-set includes the following major enhancement patches.\n   - introduce a new gloabl lock scheme\n   - add tracepoints on several major functions\n   - fix the overall cleaning process focused on victim selection\n   - apply the block plugging to merge IOs as much as possible\n   - enhance management of free nids and its list\n   - enhance the readahead mode for node pages\n   - address several cretical deadlock conditions\n   - reduce lock_page calls\n\n  The other minor bug fixes and enhancements are as follows.\n   - calculation mistakes: overflow\n   - bio types: READ, READA, and READ_SYNC\n   - fix the recovery flow, data races, and null pointer errors\"\n\n* tag \u0027f2fs-for-v3.10\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (68 commits)\n  f2fs: cover free_nid management with spin_lock\n  f2fs: optimize scan_nat_page()\n  f2fs: code cleanup for scan_nat_page() and build_free_nids()\n  f2fs: bugfix for alloc_nid_failed()\n  f2fs: recover when journal contains deleted files\n  f2fs: continue to mount after failing recovery\n  f2fs: avoid deadlock during evict after f2fs_gc\n  f2fs: modify the number of issued pages to merge IOs\n  f2fs: remove useless #include \u003clinux/proc_fs.h\u003e as we\u0027re now using sysfs as debug entry.\n  f2fs: fix inconsistent using of NM_WOUT_THRESHOLD\n  f2fs: check truncation of mapping after lock_page\n  f2fs: enhance alloc_nid and build_free_nids flows\n  f2fs: add a tracepoint on f2fs_new_inode\n  f2fs: check nid \u003d\u003d 0 in add_free_nid\n  f2fs: add REQ_META about metadata requests for submit\n  f2fs: give a chance to merge IOs by IO scheduler\n  f2fs: avoid frequent background GC\n  f2fs: add tracepoints to debug checkpoint request\n  f2fs: add tracepoints for write page operations\n  f2fs: add tracepoints to debug the block allocation\n  ...\n\nMerge tag \u0027for-f2fs-3.11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs updates from Jaegeuk Kim:\n \"This patch-set includes the following major enhancement patches:\n   - remount_fs callback function\n   - restore parent inode number to enhance the fsync performance\n   - xattr security labels\n   - reduce the number of redundant lock/unlock data pages\n   - avoid frequent write_inode calls\n\n  The other minor bug fixes are as follows.\n   - endian conversion bugs\n   - various bugs in the roll-forward recovery routine\"\n\n* tag \u0027for-f2fs-3.11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (56 commits)\n  f2fs: fix to recover i_size from roll-forward\n  f2fs: remove the unused argument \"sbi\" of func destroy_fsync_dnodes()\n  f2fs: remove reusing any prefree segments\n  f2fs: code cleanup and simplify in func {find/add}_gc_inode\n  f2fs: optimize the init_dirty_segmap function\n  f2fs: fix an endian conversion bug detected by sparse\n  f2fs: fix crc endian conversion\n  f2fs: add remount_fs callback support\n  f2fs: recover wrong pino after checkpoint during fsync\n  f2fs: optimize do_write_data_page()\n  f2fs: make locate_dirty_segment() as static\n  f2fs: remove unnecessary parameter \"offset\" from __add_sum_entry()\n  f2fs: avoid freqeunt write_inode calls\n  f2fs: optimise the truncate_data_blocks_range() range\n  f2fs: use the F2FS specific flags in f2fs_ioctl()\n  f2fs: sync dir-\u003ei_size with its block allocation\n  f2fs: fix i_blocks translation on various types of files\n  f2fs: set sb-\u003es_fs_info before calling parse_options()\n  f2fs: support xattr security labels\n  f2fs: fix iget/iput of dir during recovery\n  ...\n\nMerge tag \u0027for-f2fs-3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs updates from Jaegeuk Kim:\n \"This patch-set includes the following major enhancement patches:\n   - support inline xattrs\n   - add sysfs support to control GCs explicitly\n   - add proc entry to show the current segment usage information\n   - improve the GC/SSR performance\n\n  The other bug fixes are as follows:\n   - avoid the overflow on status calculation\n   - fix some error handling routines\n   - fix inconsistent xattr states after power-off-recovery\n   - fix incorrect xattr node offset definition\n   - fix deadlock condition in fsync\n   - fix the fdatasync routine for power-off-recovery\"\n\n* tag \u0027for-f2fs-3.12\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (40 commits)\n  f2fs: optimize gc for better performance\n  f2fs: merge more bios of node block writes\n  f2fs: avoid an overflow during utilization calculation\n  f2fs: trigger GC when there are prefree segments\n  f2fs: use strncasecmp() simplify the string comparison\n  f2fs: fix omitting to update inode page\n  f2fs: support the inline xattrs\n  f2fs: add the truncate_xattr_node function\n  f2fs: introduce __find_xattr for readability\n  f2fs: reserve the xattr space dynamically\n  f2fs: add flags for inline xattrs\n  f2fs: fix error return code in init_f2fs_fs()\n  f2fs: fix wrong BUG_ON condition\n  f2fs: fix memory leak when init f2fs filesystem fail\n  f2fs: fix a compound statement label error\n  f2fs: avoid writing inode redundantly when creating a file\n  f2fs: alloc_page() doesn\u0027t return an ERR_PTR\n  f2fs: should cover i_xattr_nid with its xattr node page lock\n  f2fs: check the free space first in new_node_page\n  f2fs: clean up the needless end \u0027return\u0027 of void function\n  ...\n\nMerge tag \u0027for-f2fs-3.13\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs updates from Jaegeuk Kim:\n \"This patch-set includes the following major enhancement patches.\n   - add a sysfs to control reclaiming free segments\n   - enhance the f2fs global lock procedures\n   - enhance the victim selection flow\n   - wait for selected node blocks during fsync\n   - add some tracepoints\n   - add a config to remove abundant BUG_ONs\n\n  The other bug fixes are as follows.\n   - fix deadlock on acl operations\n   - fix some bugs with respect to orphan inodes\n\n  And, there are a bunch of cleanups\"\n\n* tag \u0027for-f2fs-3.13\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (42 commits)\n  f2fs: issue more large discard command\n  f2fs: fix memory leak after kobject init failed in fill_super\n  f2fs: cleanup waiting routine for writeback pages in cp\n  f2fs: avoid to use a NULL point in destroy_segment_manager\n  f2fs: remove unnecessary TestClearPageError when wait pages writeback\n  f2fs: update f2fs document\n  f2fs: avoid to wait all the node blocks during fsync\n  f2fs: check all ones or zeros bitmap with bitops for better mount performance\n  f2fs: change the method of calculating the number summary blocks\n  f2fs: fix calculating incorrect free size when update xattr in __f2fs_setxattr\n  f2fs: add an option to avoid unnecessary BUG_ONs\n  f2fs: introduce CONFIG_F2FS_CHECK_FS for BUG_ON control\n  f2fs: fix a deadlock during init_acl procedure\n  f2fs: clean up acl flow for better readability\n  f2fs: remove unnecessary segment bitmap updates\n  f2fs: add tracepoint for vm_page_mkwrite\n  f2fs: add tracepoint for set_page_dirty\n  f2fs: remove redundant set_page_dirty from write_compacted_summaries\n  f2fs: add reclaiming control by sysfs\n  f2fs: introduce f2fs_balance_fs_bg for some background jobs\n  ...\n\nChange-Id: Ied5488471d49d64ce6abb4be19237c4e90829ff6\n"
    },
    {
      "commit": "0ada96714fba26853fec00f4d95577c577c6e5ef",
      "tree": "5254cc40c6519573f1e912bc74649a46b2cb896f",
      "parents": [
        "250b2a1311e758105e6a0916cce78051fa23f467"
      ],
      "author": {
        "name": "James Sullins",
        "email": "jcsullins@gmail.com",
        "time": "Wed Dec 25 17:12:35 2013 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 10:01:47 2015 -0500"
      },
      "message": "OTG: usb_multi_charger_detect\n\nPorted from JCsullins 3.0 Kernel\n\nChange-Id: I3908fd6e4fa6c526c1c9bf9d178491d78a3c6022\n"
    },
    {
      "commit": "250b2a1311e758105e6a0916cce78051fa23f467",
      "tree": "c10fc2721a553120292771f7a2656ecf2b94b273",
      "parents": [
        "4fcb608f7e63a6e671d01f1f98d1307acd12fc89"
      ],
      "author": {
        "name": "James Sullins",
        "email": "jcsullins@gmail.com",
        "time": "Sat Feb 01 07:45:05 2014 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 09:54:48 2015 -0500"
      },
      "message": "WIP: defconfig update + uhid fixes\n\nChange-Id: I75dfe6cad28b0872745cb5db174a3ce23e40c3f5\n"
    },
    {
      "commit": "93cb32e7ad7afc2cedc29a60f2fb7dc54abf5dfd",
      "tree": "36d1f7f3ad6506d3d92cd2d709d2861f71bc48c5",
      "parents": [
        "04680c98df189a7178839065ac651593906fc49d"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Fri Feb 17 15:03:37 2012 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 24 09:48:03 2015 -0500"
      },
      "message": "asm/syscall.h: add syscall_get_arch\n\nAdds a stub for a function that will return the AUDIT_ARCH_* value\nappropriate to the supplied task based on the system call convention.\n\nFor audit\u0027s use, the value can generally be hard-coded at the\naudit-site.  However, for other functionality not inlined into syscall\nentry/exit, this makes that information available.  seccomp_filter is\nthe first planned consumer and, as such, the comment indicates a tie to\nCONFIG_HAVE_ARCH_SECCOMP_FILTER.\n\nSuggested-by: Roland McGrath \u003cmcgrathr@chromium.org\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: comment and change reword and rebase.\nv14: rebase/nochanges\nv13: rebase on to 88ebdda6159ffc15699f204c33feb3e431bf9bdc\nv12: rebase on to linux-next\nv11: fixed improper return type\nv10: introduced\n"
    },
    {
      "commit": "1097d78180e1a2916c2bcdb15cb90ba131af9cd8",
      "tree": "5910f8fc0dcb85c71011ccccee18895769699390",
      "parents": [
        "3ded4adc97887ddde3c1855f29f062e015d19425",
        "7fd7a446b1c2b96252e4389746e5419eae04faef"
      ],
      "author": {
        "name": "Paul",
        "email": "javelinanddart@gmail.com",
        "time": "Sun Jan 11 17:15:40 2015 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Jan 11 17:20:45 2015 -0800"
      },
      "message": "Merge tag \u0027v3.4.105\u0027 into cm-12.0\n\nThis is the 3.4.105 stable release\n\nConflicts:\n\tarch/arm/mm/proc-v7.S\n\tdrivers/bluetooth/hci_ldisc.c\n\tdrivers/media/dvb/dvb-core/dmxdev.c\n\tdrivers/usb/core/driver.c\n\tdrivers/usb/dwc3/core.c\n\tdrivers/usb/host/xhci-hub.c\n\tdrivers/usb/host/xhci.c\n\tdrivers/usb/serial/qcserial.c\n\tdrivers/usb/serial/usb_wwan.c\n\tkernel/events/core.c\n\tkernel/time/tick-sched.ck\n\tkernel/futex.c\n\tmm/memory_hotplug.c\n\tmm/vmscan.c\n\tnet/bluetooth/hci_conn.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\tnet/ipv4/ping.c\n\tnet/wireless/nl80211.c\n\tsound/soc/soc-core.c\n\nChange-Id: Id09da84afb427ba1a32ff26e74f2bb86458d4a2e\n"
    },
    {
      "commit": "a7ee16813c355517a8b846961579ae39415340f4",
      "tree": "d6dc58bcc169cf2155e1352d2c83bd7b918e9bac",
      "parents": [
        "53b99cfb35ea900b188ed7136f35fa475f535e0c"
      ],
      "author": {
        "name": "Brinly Taylor",
        "email": "uberlaggydarwin@gmail.com",
        "time": "Thu Dec 18 16:23:10 2014 +1030"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jan 05 09:10:09 2015 +0000"
      },
      "message": "power: pm8921-charger: Add HTC zara support\n\n* Part 2\n\nChange-Id: I668df5e45c839613a6ff04c931e02f59ba6d6c6c\n"
    },
    {
      "commit": "10bfbbbd361b707763b9153f2916bbd3f5f3e78d",
      "tree": "8fb647facdf47dc3f3b4fc924557df78159e1ec8",
      "parents": [
        "a58746417841a7f8787874a2c31cb05bf934a007"
      ],
      "author": {
        "name": "Brinly Taylor",
        "email": "uberlaggydarwin@gmail.com",
        "time": "Thu Dec 18 16:22:05 2014 +1030"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jan 05 09:08:14 2015 +0000"
      },
      "message": "input: bma250: Add HTC zara support\n\nChange-Id: I24c85491195c2c3d266388bdb3a1b92f615d863c\n"
    },
    {
      "commit": "9bf75dffc07ea6b5e19251880b8dcf0debdbbccc",
      "tree": "329bb5327b7e523ed2812dc6679b035f594f69f5",
      "parents": [
        "74cfe2dcc0f4b17f9abbabf349e33c39a260987e"
      ],
      "author": {
        "name": "Andy Lutomirski",
        "email": "luto@amacapital.net",
        "time": "Thu Apr 12 16:47:50 2012 -0500"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Dec 16 13:18:02 2014 -0800"
      },
      "message": "Add PR_{GET,SET}_NO_NEW_PRIVS to prevent execve from granting privs\n\nWith this change, calling\n  prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)\ndisables privilege granting operations at execve-time.  For example, a\nprocess will not be able to execute a setuid binary to change their uid\nor gid if this bit is set.  The same is true for file capabilities.\n\nAdditionally, LSM_UNSAFE_NO_NEW_PRIVS is defined to ensure that\nLSMs respect the requested behavior.\n\nTo determine if the NO_NEW_PRIVS bit is set, a task may call\n  prctl(PR_GET_NO_NEW_PRIVS, 0, 0, 0, 0);\nIt returns 1 if set and 0 if it is not set. If any of the arguments are\nnon-zero, it will return -1 and set errno to -EINVAL.\n(PR_SET_NO_NEW_PRIVS behaves similarly.)\n\nThis functionality is desired for the proposed seccomp filter patch\nseries.  By using PR_SET_NO_NEW_PRIVS, it allows a task to modify the\nsystem call behavior for itself and its child tasks without being\nable to impact the behavior of a more privileged task.\n\nAnother potential use is making certain privileged operations\nunprivileged.  For example, chroot may be considered \"safe\" if it cannot\naffect privileged tasks.\n\nNote, this patch causes execve to fail when PR_SET_NO_NEW_PRIVS is\nset and AppArmor is in use.  It is fixed in a subsequent patch.\n\nSigned-off-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\n\nChange-Id: I2159006d20daefe6add5adc47c22bdbcd7d79e3a\nv18: updated change desc\nv17: using new define values as per 3.4\nSigned-off-by: James Morris \u003cjames.l.morris@oracle.com\u003e\n"
    },
    {
      "commit": "74cfe2dcc0f4b17f9abbabf349e33c39a260987e",
      "tree": "206493082f5edc72fdac6c958877090d7d17fb37",
      "parents": [
        "a580da13cb3f1f4984e71befc4f78c5a1f3181d0",
        "6cf93503105dc0cf63fc1384088db92bb71cbe4c"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Dec 16 00:35:23 2014 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Dec 16 00:35:23 2014 -0800"
      },
      "message": "Merge remote-tracking branch \u0027caf/LA.AF.1.1_rb1.7\u0027 into cm-12.0\n\nConflicts:\n\tdrivers/misc/qseecom.c\n\tfs/proc/task_mmu.c\n\tinclude/net/tcp.h\n\tnet/ipv4/syncookies.c\n\tnet/ipv6/route.c\n\tnet/ipv6/tcp_ipv6.c\n\nChange-Id: I8a953e9f483a24ee45f5e1c570b6a4f92e87c6e9\n"
    },
    {
      "commit": "fdbf5bb4aa9548fd9961617c2412ecd1241c7dc9",
      "tree": "acb977a7feef0ee3fde27f410c34872f2fa9dd50",
      "parents": [
        "113f56eb9732dca568aabec863de79364ba81bf9"
      ],
      "author": {
        "name": "Olav Haugan",
        "email": "ohaugan@codeaurora.org",
        "time": "Sat Dec 28 09:28:34 2013 -0500"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue Dec 09 04:06:26 2014 -0500"
      },
      "message": "PORTED: Subsystem map api is deprecated and will be removed.\nIt is no longer being used.\n\nSigned-off-by: Olav Haugan \u003cohaugan@codeaurora.org\u003e\n\nChange-Id: Ib4b7d1e982f4ec634d06c0d895656071e7c10b14\n"
    },
    {
      "commit": "113f56eb9732dca568aabec863de79364ba81bf9",
      "tree": "0f7e687d64f51ebc2a2c42fee300a160ad22b443",
      "parents": [
        "f3a1887021e2a44d96209f473e08c510fac4bfc8"
      ],
      "author": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Fri Mar 08 14:55:23 2013 -0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue Dec 09 04:06:08 2014 -0500"
      },
      "message": "msm: vidc: Remove all references to CONFIG_ANDROID_PMEM\n\nCONFIG_ANDROID_PMEM is completely deprecated. Remove all\nreferences to it.\n\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n\nChange-Id: I7d5f853f721689f29d41fa380d4b7a99eaaa9595\n"
    },
    {
      "commit": "b47d65db8f8e765ef0267d13681c9bf12a148fb5",
      "tree": "bae1470ac9ca843e700bbf3a6008f179c377dbe8",
      "parents": [
        "ae552f6b54840fc7fb7a7ee688632b55e7eb9cef"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jul 28 16:26:53 2014 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Dec 01 18:02:42 2014 +0800"
      },
      "message": "mnt: Only change user settable mount flags in remount\n\ncommit a6138db815df5ee542d848318e5dae681590fccd upstream.\n\nKenton Varda \u003ckenton@sandstorm.io\u003e discovered that by remounting a\nread-only bind mount read-only in a user namespace the\nMNT_LOCK_READONLY bit would be cleared, allowing an unprivileged user\nto the remount a read-only mount read-write.\n\nCorrect this by replacing the mask of mount flags to preserve\nwith a mask of mount flags that may be changed, and preserve\nall others.   This ensures that any future bugs with this mask and\nremount will fail in an easy to detect way where new mount flags\nsimply won\u0027t change.\n\nAcked-by: Serge E. Hallyn \u003cserge.hallyn@ubuntu.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Francis Moreau \u003cfrancis.moro@gmail.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "4fae6ccac642aa30d189dea30ef14306aad4d2d2",
      "tree": "f4277880c2438c5ef039b4a88d818555150799f9",
      "parents": [
        "699c06b386d592bede77d5a28ed1637c80ab99c0"
      ],
      "author": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Sep 25 09:41:02 2014 +0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Dec 01 18:02:38 2014 +0800"
      },
      "message": "cpuset: PF_SPREAD_PAGE and PF_SPREAD_SLAB should be atomic flags\n\ncommit 2ad654bc5e2b211e92f66da1d819e47d79a866f0 upstream.\n\nWhen we change cpuset.memory_spread_{page,slab}, cpuset will flip\nPF_SPREAD_{PAGE,SLAB} bit of tsk-\u003eflags for each task in that cpuset.\nThis should be done using atomic bitops, but currently we don\u0027t,\nwhich is broken.\n\nTetsuo reported a hard-to-reproduce kernel crash on RHEL6, which happened\nwhen one thread tried to clear PF_USED_MATH while at the same time another\nthread tried to flip PF_SPREAD_PAGE/PF_SPREAD_SLAB. They both operate on\nthe same task.\n\nHere\u0027s the full report:\nhttps://lkml.org/lkml/2014/9/19/230\n\nTo fix this, we make PF_SPREAD_PAGE and PF_SPREAD_SLAB atomic flags.\n\nv4:\n- updated mm/slab.c. (Fengguang Wu)\n- updated Documentation.\n\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nFixes: 950592f7b991 (\"cpusets: update tasks\u0027 page/slab spread flags in time\")\nReported-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - check current-\u003eflags \u0026 PF_MEMPOLICY rather than current-\u003emempolicy]\n"
    },
    {
      "commit": "699c06b386d592bede77d5a28ed1637c80ab99c0",
      "tree": "f05290151e1f98926d21fd63aa38ffbb94c85538",
      "parents": [
        "f4d8504c6629c83dd6eec43a2eb7f34b9bae09a7"
      ],
      "author": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Sep 25 09:40:40 2014 +0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Dec 01 18:02:38 2014 +0800"
      },
      "message": "sched: add macros to define bitops for task atomic flags\n\ncommit e0e5070b20e01f0321f97db4e4e174f3f6b49e50 upstream.\n\nThis will simplify code when we add new flags.\n\nv3:\n- Kees pointed out that no_new_privs should never be cleared, so we\nshouldn\u0027t define task_clear_no_new_privs(). we define 3 macros instead\nof a single one.\n\nv2:\n- updated scripts/tags.sh, suggested by Peter\n\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nAcked-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - remove no_new_priv code\n - add atomic_flags to struct task_struct]\n"
    },
    {
      "commit": "49d4f0197912461fb2939ca51521b47655b04b11",
      "tree": "c9fbeb1f40c7e05498e157a4d6a2846d68750306",
      "parents": [
        "a90ec2a8bbd22a90dfdb5ca1b294c900226b7ff8"
      ],
      "author": {
        "name": "Andrew Hunter",
        "email": "ahh@google.com",
        "time": "Thu Sep 04 14:17:16 2014 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Dec 01 18:02:32 2014 +0800"
      },
      "message": "jiffies: Fix timeval conversion to jiffies\n\ncommit d78c9300c51d6ceed9f6d078d4e9366f259de28c upstream.\n\ntimeval_to_jiffies tried to round a timeval up to an integral number\nof jiffies, but the logic for doing so was incorrect: intervals\ncorresponding to exactly N jiffies would become N+1. This manifested\nitself particularly repeatedly stopping/starting an itimer:\n\nsetitimer(ITIMER_PROF, \u0026val, NULL);\nsetitimer(ITIMER_PROF, NULL, \u0026val);\n\nwould add a full tick to val, _even if it was exactly representable in\nterms of jiffies_ (say, the result of a previous rounding.)  Doing\nthis repeatedly would cause unbounded growth in val.  So fix the math.\n\nHere\u0027s what was wrong with the conversion: we essentially computed\n(eliding seconds)\n\njiffies \u003d usec  * (NSEC_PER_USEC/TICK_NSEC)\n\nby using scaling arithmetic, which took the best approximation of\nNSEC_PER_USEC/TICK_NSEC with denominator of 2^USEC_JIFFIE_SC \u003d\nx/(2^USEC_JIFFIE_SC), and computed:\n\njiffies \u003d (usec * x) \u003e\u003e USEC_JIFFIE_SC\n\nand rounded this calculation up in the intermediate form (since we\ncan\u0027t necessarily exactly represent TICK_NSEC in usec.) But the\nscaling arithmetic is a (very slight) *over*approximation of the true\nvalue; that is, instead of dividing by (1 usec/ 1 jiffie), we\neffectively divided by (1 usec/1 jiffie)-epsilon (rounding\ndown). This would normally be fine, but we want to round timeouts up,\nand we did so by adding 2^USEC_JIFFIE_SC - 1 before the shift; this\nwould be fine if our division was exact, but dividing this by the\nslightly smaller factor was equivalent to adding just _over_ 1 to the\nfinal result (instead of just _under_ 1, as desired.)\n\nIn particular, with HZ\u003d1000, we consistently computed that 10000 usec\nwas 11 jiffies; the same was true for any exact multiple of\nTICK_NSEC.\n\nWe could possibly still round in the intermediate form, adding\nsomething less than 2^USEC_JIFFIE_SC - 1, but easier still is to\nconvert usec-\u003ensec, round in nanoseconds, and then convert using\ntime*spec*_to_jiffies.  This adds one constant multiplication, and is\nnot observably slower in microbenchmarks on recent x86 hardware.\n\nTested: the following program:\n\nint main() {\n  struct itimerval zero \u003d {{0, 0}, {0, 0}};\n  /* Initially set to 10 ms. */\n  struct itimerval initial \u003d zero;\n  initial.it_interval.tv_usec \u003d 10000;\n  setitimer(ITIMER_PROF, \u0026initial, NULL);\n  /* Save and restore several times. */\n  for (size_t i \u003d 0; i \u003c 10; ++i) {\n    struct itimerval prev;\n    setitimer(ITIMER_PROF, \u0026zero, \u0026prev);\n    /* on old kernels, this goes up by TICK_USEC every iteration */\n    printf(\"previous value: %ld %ld %ld %ld\\n\",\n           prev.it_interval.tv_sec, prev.it_interval.tv_usec,\n           prev.it_value.tv_sec, prev.it_value.tv_usec);\n    setitimer(ITIMER_PROF, \u0026prev, NULL);\n  }\n    return 0;\n}\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nReviewed-by: Paul Turner \u003cpjt@google.com\u003e\nReported-by: Aaron Jacobs \u003cjacobsa@google.com\u003e\nSigned-off-by: Andrew Hunter \u003cahh@google.com\u003e\n[jstultz: Tweaked to apply to 3.17-rc]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n[lizf: Backported to 3.4: adjust filename]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "be93eea739598a5bf2562110323d79d80d0e6a33",
      "tree": "58479ef6306aea7696730678edfe87d6523ed4e5",
      "parents": [
        "a51b4d7710d1a3593c3bdc4592fdecbbb8df4f16"
      ],
      "author": {
        "name": "Eliad Peller",
        "email": "eliad@wizery.com",
        "time": "Wed Jun 11 10:23:35 2014 +0300"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Dec 01 18:02:22 2014 +0800"
      },
      "message": "regulatory: add NUL to alpha2\n\ncommit a5fe8e7695dc3f547e955ad2b662e3e72969e506 upstream.\n\nalpha2 is defined as 2-chars array, but is used in multiple\nplaces as string (e.g. with nla_put_string calls), which\nmight leak kernel data.\n\nSolve it by simply adding an extra char for the NULL\nterminator, making such operations safe.\n\nSigned-off-by: Eliad Peller \u003celiadx.peller@intel.com\u003e\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "45bb5ff6ed69d017d14ec37ef76b27747deed955",
      "tree": "76e44de5d725dde009ed88d903c1fe4776ebf722",
      "parents": [
        "715fe086a6d99d2efc6276028ac626766567e101",
        "8ca5b06fa71c0b5ad8174ff1152d3de74e706ee9"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Tue Nov 18 00:11:01 2014 -0800"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Tue Nov 18 00:11:01 2014 -0800"
      },
      "message": "Merge \"seq_file: introduce seq_setwidth() and seq_pad()\""
    },
    {
      "commit": "0adce3ae6072516167da603fb26c0519b4274352",
      "tree": "5353d5a238edefbd74e6cf6adbdbc7583f256293",
      "parents": [
        "7b18590cff07a04fcf955e1648e4a9f11752a545"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jun 09 23:37:13 2014 +0200"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Nov 16 17:29:36 2014 -0800"
      },
      "message": "msm: camera: Update HTC camera stack drivers\n\n* HTC kernel package: m7ul-3.4.10-g40b189c\n                      m4ul-3.4.10-g3862988\n                      t6ul-3.4.10-gbc2653f\n\nChange-Id: I936c6c053cc838312b721c3d0e201debf7e42281\n"
    },
    {
      "commit": "7b18590cff07a04fcf955e1648e4a9f11752a545",
      "tree": "ecb5f439e7001fc162baaa1854bb8211e7cc2690",
      "parents": [
        "50db8c0110dbff94dfacc1f4752a927dbe339e9c"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Nov 16 16:48:31 2014 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Nov 16 17:29:36 2014 -0800"
      },
      "message": "gpu: msm2: Sync to upstream\n\n* Sync to android-msm-3.4-flo-lollipop-release\n\nChange-Id: Ia0df71c0a1f102de034860f4d212a05c806fef7d\n"
    },
    {
      "commit": "50db8c0110dbff94dfacc1f4752a927dbe339e9c",
      "tree": "fc604545ec971ab0e224c305f0b948edc08295aa",
      "parents": [
        "25b02b6d180efeec13851162c3319962977c1fb0",
        "2f64c5e6faa76368cd2c70c1d48fc4c2d44acbbf"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Nov 14 01:04:45 2014 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Nov 14 01:04:45 2014 -0800"
      },
      "message": "Merge remote-tracking branch \u0027caf/caf/LA.AF.1.1_rb1.5\u0027 into cm-12.0\n"
    },
    {
      "commit": "13632f57f13a00ab58d1a56d60caa9510a20e47c",
      "tree": "e48f1ed3de834f197b2e23f32a91409384b1c9be",
      "parents": [
        "0d8c39adeafd36903d00c388802ebad8de0eef52"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue Jul 08 11:37:03 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Nov 13 19:59:48 2014 -0500"
      },
      "message": "Handle \u0027sk\u0027 being NULL in UID-based routing.\n\nBug: 15413527\nChange-Id: If33bebb7b52c0ebfa8dac2452607bce0c2b0faa0\nSigned-off-by: Sreeram Ramachandran \u003csreeram@google.com\u003e\nGit-commit: 0836a0c191f580ed69254e0b287cdce58481e978\nGit-repo: https://android.googlesource.com/kernel/common.git\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\n"
    },
    {
      "commit": "0d8c39adeafd36903d00c388802ebad8de0eef52",
      "tree": "b51f7731b13ad2d932c4fc0b92cba44cb16ea38a",
      "parents": [
        "e141fbd5a3999fc64598dc1533fb920e70746f53"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Mar 31 16:23:51 2014 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Nov 13 19:59:36 2014 -0500"
      },
      "message": "net: core: Support UID-based routing.\n\nThis contains the following commits:\n\n1. 0149763 net: core: Add a UID range to fib rules.\n2. 1650474 net: core: Use the socket UID in routing lookups.\n3. 0b16771 net: ipv4: Add the UID to the route cache.\n4. ee058f1 net: core: Add a RTA_UID attribute to routes.\n    This is so that userspace can do per-UID route lookups.\n\nBug: 15413527\nChange-Id: I1285474c6734614d3bda6f61d88dfe89a4af7892\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nGit-commit: 0b428749ce5969bc06c73855e360141b4e7126e8\nGit-repo: https://android.googlesource.com/kernel/common.git\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\n"
    },
    {
      "commit": "bc2be064bd7394f417326404d641cf9eabb4ac4e",
      "tree": "a03a6f166cf26ed0bc49a84dd754d2e1160e18a3",
      "parents": [
        "52cb8fc12e41c36111d5531c6c8e70d406a85207",
        "8cb56e3467fd98e6f9396553402cf22b08f1e5a5"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Thu Nov 13 13:03:28 2014 -0800"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Thu Nov 13 13:03:27 2014 -0800"
      },
      "message": "Merge \"net: support marking accepting TCP sockets\""
    },
    {
      "commit": "52cb8fc12e41c36111d5531c6c8e70d406a85207",
      "tree": "5b91171e550f77916bd148961615c7ba5be56a1c",
      "parents": [
        "8c1d434b2e49df7a7cefac06e62ab5faa7eb4776",
        "2887dec4438f37edfd8dbf355af23d61cfdd4c27"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Thu Nov 13 13:03:27 2014 -0800"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Thu Nov 13 13:03:27 2014 -0800"
      },
      "message": "Merge \"net: add a sysctl to reflect the fwmark on replies\""
    },
    {
      "commit": "8c1d434b2e49df7a7cefac06e62ab5faa7eb4776",
      "tree": "97f3aa4b233011a156128517bd85fb3e09f8cc38",
      "parents": [
        "bc4bcee71617461ed19a852f9d873f5979820ef1",
        "653be181eef3589b47119cd68c985975119fa61f"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Thu Nov 13 13:03:26 2014 -0800"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Thu Nov 13 13:03:26 2014 -0800"
      },
      "message": "Merge \"net: ipv6: autoconf routes into per-device tables\""
    },
    {
      "commit": "6891c8f90220dfb5d71d83263f0a41b30f9732e2",
      "tree": "48b4c7141a700787180c07ff23e35ffb42d21037",
      "parents": [
        "2eeb25228b825cd3692275f3972c551504cc02ec"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri Feb 07 18:40:10 2014 -0800"
      },
      "committer": {
        "name": "Ian Maund",
        "email": "imaund@codeaurora.org",
        "time": "Fri Nov 07 16:35:05 2014 -0800"
      },
      "message": "tcp: add a sysctl to config the tcp_default_init_rwnd\n\nThe default initial rwnd is hardcoded to 10.\n\nNow we allow it to be controlled via\n  /proc/sys/net/ipv4/tcp_default_init_rwnd\nwhich limits the values from 3 to 100\n\nThis is somewhat needed because ipv6 routes are\nautoconfigured by the kernel.\n\nSee \"An Argument for Increasing TCP\u0027s Initial Congestion Window\"\nin https://developers.google.com/speed/articles/tcp_initcwnd_paper.pdf\n\nChange-Id: I386b2a9d62de0ebe05c1ebe1b4bd91b314af5c54\nSigned-off-by: JP Abgrall \u003cjpa@google.com\u003e\nGit-commit: 969ff3bbb38b6622800a1a4bd38404e3701193de\nGit-Repo: https://android.googlesource.com/kernel/common.git\n[imaund@codeaurora.org: Resolved trivial context conflicts.]\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\n"
    },
    {
      "commit": "db58087458b8916418279da422e2c70aec173f2a",
      "tree": "9a9caba82b1ad217124c3d8e40c2a6e20a7bab27",
      "parents": [
        "0deef91e0bd30e26f143804466e179137251caa2"
      ],
      "author": {
        "name": "Dan Pasanen",
        "email": "dan.pasanen@gmail.com",
        "time": "Wed Oct 15 10:09:16 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Wed Oct 15 10:09:16 2014 -0700"
      },
      "message": "radio: iris: Use #define to declare numerical constants\n\n* Declaring these as actual types causes duplicate symbol problems\n  when compiling IRIS as a kernel builtin.\n\nChange-Id: Id180bc196caaa12d0755a9159af9660419558a56\n"
    },
    {
      "commit": "0deef91e0bd30e26f143804466e179137251caa2",
      "tree": "92056f9360c5c9c96afd94bf82acb4b86e181493",
      "parents": [
        "66b1e2e7fcec28da4a2139ae2d49421feb6871db"
      ],
      "author": {
        "name": "Satish Kodishala",
        "email": "skodisha@codeaurora.org",
        "time": "Thu Jan 09 16:58:32 2014 +0530"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Tue Oct 14 20:25:16 2014 -0500"
      },
      "message": "radio: iris: Fixed an issue with search stations list.\n\nRDS search, search station list were getting excluded\nwhile checking bounds for allowed search types. Fixed\ncheck to include them.\n\nCRs-fixed: 597996\nChange-Id: Ia2d7cc8a1bbf8e861a0e23dfc8ca56181b42b810\nSigned-off-by: Satish Kodishala \u003cskodisha@codeaurora.org\u003e\n"
    },
    {
      "commit": "66b1e2e7fcec28da4a2139ae2d49421feb6871db",
      "tree": "007a406f51cfb6594372d76e47e7b5aa5b9ff8d0",
      "parents": [
        "96ba786725d5fb2efadbbfd6979bec21fbf889c0"
      ],
      "author": {
        "name": "Ayaz Ahmad",
        "email": "aahmad@codeaurora.org",
        "time": "Thu Dec 19 18:39:57 2013 +0530"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Tue Oct 14 20:25:01 2014 -0500"
      },
      "message": "radio: iris: Bound check user space values\n\nThere is no bound check for arguments passed\nfrom user space to kernel space. This may cause\nfatal exceptions.\n\nChange-Id: I944e8e5d6e3b12b75df4e6cee7887075237b4411\nCRs-Fixed: 546081\nSigned-off-by: Ayaz Ahmad \u003caahmad@codeaurora.org\u003e\n"
    },
    {
      "commit": "1aa8b2d6c2d4cb6bc4c7c7ff8695fc8b8f1a3819",
      "tree": "afbd61707e8fa3834854f8cc6e8e28959fcec293",
      "parents": [
        "95cd5f3a5d079dfe686686fbf6802a0b2e70252e"
      ],
      "author": {
        "name": "Venkateshwarlu Domakonda",
        "email": "Venkateshwarlu@codeaurora.org",
        "time": "Tue Apr 30 14:12:13 2013 +0530"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Tue Oct 14 20:23:44 2014 -0500"
      },
      "message": "radio-iris: Configure repeat count for PS string\n\n- When FM Rx tuned to a station, not receiving complete PS string.\n  SOC is not waiting for complete PS string. it is sending PS event\n  even if it has part of PS string as well.\n- Added support for setting repeat count for PS string\n  to get refined PS string from receiver.\n\nCRs-Fixed: 474719\nChange-Id: I71c0c1c8af9488573c05d816c37982f9ed935a87\nSigned-off-by: Venkateshwarlu Domakonda \u003cVenkateshwarlu@codeaurora.org\u003e\n"
    },
    {
      "commit": "95cd5f3a5d079dfe686686fbf6802a0b2e70252e",
      "tree": "dbcf64c18e18c670d02859016ea85371af42b836",
      "parents": [
        "07bb1e8c791e215a62814701fcd9ed4accf21bc1"
      ],
      "author": {
        "name": "Venkateshwarlu Domakonda",
        "email": "Venkateshwarlu@codeaurora.org",
        "time": "Fri Apr 05 15:12:32 2013 +0530"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Tue Oct 14 20:04:23 2014 -0500"
      },
      "message": "radio: iris: Expose FM Radio commands and events to user-space\n\nMove the FM command and event structure declarations to separate header\nfile and include it in FM Radio driver.\n\nChange-Id: Id664eab476240a54a1bc8db656bc9dc95a252bdb\nCRs-Fixed: 436286\nSigned-off-by: Venkateshwarlu Domakonda \u003cVenkateshwarlu@codeaurora.org\u003e\n"
    },
    {
      "commit": "ad3dae1c0ad772e899815622004f42e1318c48a4",
      "tree": "ce5d32a7c9d130bac2220a288ad23a4415acdc71",
      "parents": [
        "79fc4d24eef5e4f5e25782690379e97aee0327ea"
      ],
      "author": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Sun Oct 05 22:13:10 2014 -0500"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Wed Oct 08 02:18:13 2014 -0500"
      },
      "message": "drivers: net: wireless: add HTC\u0027s bcmdhd_4335_mcc\n\nFrom m7stockui-3.4.10-gef77362.\n\nModifications from stock HTC driver:\n* Remove poorly commented-out CFLAGS section from Makefile\n* Make CONFIG_BCMDHD_4335_MCC select WIRELESS_EXT, WEXT_PRIV\n* Fix msm_watchdog.h include in dhd_sdio.c\n* Our kernel does not need OLD_CFG_80211; removing this flag also\n  required the following fixes in wl_cfg80211.c\n  - L292: ifdef out used_default_ssid\n  - L6698-6702: ifdef out usage of wl_cfg80211_hostapd_sec()\n\nChanges outside of driver: Make necessary additions (and block with\nCONFIG_BCMDHD_4335_MCC where appropriate) in:\n* drivers/mmc/host/msm_sdcc.c\n* include/linux/ieee80211.h\n* include/linux/nl80211.h\n* include/linux/wlan_plat.h\n\nChange-Id: I405010d3ae0fc3586de2a2aa3ffaab01909ddcde\n"
    },
    {
      "commit": "69db2d4044cc494b03bad01b2e106f7324ef3fdf",
      "tree": "ce09bfaf1099abfdd23e71c52652fde1e8ba35a3",
      "parents": [
        "ab22539512b325240dac92e92bbaf1d9aebaa2e5"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Sat Jun 09 02:40:03 2012 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Sep 25 11:49:17 2014 +0800"
      },
      "message": "slab/mempolicy: always use local policy from interrupt context\n\ncommit e7b691b085fda913830e5280ae6f724b2a63c824 upstream.\n\nslab_node() could access current-\u003emempolicy from interrupt context.\nHowever there\u0027s a race condition during exit where the mempolicy\nis first freed and then the pointer zeroed.\n\nUsing this from interrupts seems bogus anyways. The interrupt\nwill interrupt a random process and therefore get a random\nmempolicy. Many times, this will be idle\u0027s, which noone can change.\n\nJust disable this here and always use local for slab\nfrom interrupts. I also cleaned up the callers of slab_node a bit\nwhich always passed the same argument.\n\nI believe the original mempolicy code did that in fact,\nso it\u0027s likely a regression.\n\nv2: send version with correct logic\nv3: simplify. fix typo.\nReported-by: Arun Sharma \u003casharma@fb.com\u003e\nCc: penberg@kernel.org\nCc: cl@linux.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n[tdmackey@twitter.com: Rework control flow based on feedback from\ncl@linux.com, fix logic, and cleanup current task_struct reference]\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David Mackey \u003ctdmackey@twitter.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "dc1175e6c9149917bfb8eb25f4cf76dc6a5545c3",
      "tree": "d4724ab65697175babb1dd439144df1a5fb2c0b5",
      "parents": [
        "3294f78857e29fec48d805b48f7c5c607dcf75ab"
      ],
      "author": {
        "name": "M1cha",
        "email": "sigmaepsilon92@gmail.com",
        "time": "Sat Sep 21 14:35:54 2013 +0200"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Sep 23 22:57:38 2014 -0700"
      },
      "message": "radio: iris: Initialize radio-iris for built-in iris-transport\n\nChange-Id: Id0d9a36f93ec387e08be3d041e60113d2cf75aa8\n"
    },
    {
      "commit": "414192d0710b30b2dbf5855b684cd0a18a33aebf",
      "tree": "c2a53833018988086d0b94ed58babb08b7ecb443",
      "parents": [
        "462ce7cf70a565d9fd58421bb28a4bdcff9dfa6e"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Tue Jul 08 11:37:03 2014 -0700"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Wed Sep 17 03:33:00 2014 -0700"
      },
      "message": "Handle \u0027sk\u0027 being NULL in UID-based routing.\n\nBug: 15413527\nChange-Id: If33bebb7b52c0ebfa8dac2452607bce0c2b0faa0\nSigned-off-by: Sreeram Ramachandran \u003csreeram@google.com\u003e\nGit-commit: 0836a0c191f580ed69254e0b287cdce58481e978\nGit-repo: https://android.googlesource.com/kernel/common.git\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\n"
    },
    {
      "commit": "462ce7cf70a565d9fd58421bb28a4bdcff9dfa6e",
      "tree": "08073040d1eeaa0b05e95fb9e7a78e162f4aab72",
      "parents": [
        "1af043959e84f3e14fed7c9a965ce649217d2e42"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Mar 31 16:23:51 2014 +0900"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Wed Sep 17 03:26:12 2014 -0700"
      },
      "message": "net: core: Support UID-based routing.\n\nThis contains the following commits:\n\n1. 0149763 net: core: Add a UID range to fib rules.\n2. 1650474 net: core: Use the socket UID in routing lookups.\n3. 0b16771 net: ipv4: Add the UID to the route cache.\n4. ee058f1 net: core: Add a RTA_UID attribute to routes.\n    This is so that userspace can do per-UID route lookups.\n\nBug: 15413527\nChange-Id: I1285474c6734614d3bda6f61d88dfe89a4af7892\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nGit-commit: 0b428749ce5969bc06c73855e360141b4e7126e8\nGit-repo: https://android.googlesource.com/kernel/common.git\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\n"
    },
    {
      "commit": "e55f3fceb32e5bb0823f79b645488e54f3e4e733",
      "tree": "31327d8b3ad3ade80ffae4c8a3aab3d43e20b062",
      "parents": [
        "90a5dbf6974f70c756e7655961b73757fa8be6ae",
        "ac58acb16ad3bd7d6c26c5a2e281f34d4cbdcf03"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Tue Sep 16 10:23:08 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Sep 16 10:23:08 2014 -0700"
      },
      "message": "Merge remote-tracking branch \u0027codeaurora/caf/kk_2.7_rb1.43\u0027 into cm-11.0\n\nConflicts:\n\tfs/proc/task_mmu.c\n\nChange-Id: Ie014403aec1279c5adec53138131671c444c4162\n"
    },
    {
      "commit": "8ca5b06fa71c0b5ad8174ff1152d3de74e706ee9",
      "tree": "f60de147e2eba6f12e7d4af14d1b70f51cba8811",
      "parents": [
        "ad84b52a71414a48d02a7f4d4d52cd8b69c444d8"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@I-love.SAKURA.ne.jp",
        "time": "Thu Nov 14 14:31:56 2013 -0800"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Mon Sep 15 03:02:08 2014 -0700"
      },
      "message": "seq_file: introduce seq_setwidth() and seq_pad()\n\nThere are several users who want to know bytes written by seq_*() for\nalignment purpose.  Currently they are using %n format for knowing it\nbecause seq_*() returns 0 on success.\n\nThis patch introduces seq_setwidth() and seq_pad() for allowing them to\nalign without using %n format.\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nGit-commit: 839cc2a94cc3665bafe32203c2f095f4dd470a80)\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nCRs-fixed: 665291\nChange-Id: I727d9af5ed320d717295c9d0f82c88623fb181c1\nSigned-off-by: David Brown \u003cdavidb@codeaurora.org\u003e\n"
    },
    {
      "commit": "1229d6034b03092e9f352329fc6fa98adab46549",
      "tree": "7075e731df4c14bd6a02f2202b0a38299b8874ca",
      "parents": [
        "ad84b52a71414a48d02a7f4d4d52cd8b69c444d8"
      ],
      "author": {
        "name": "Ravi Aravamudhan",
        "email": "aravamud@codeaurora.org",
        "time": "Wed Apr 23 22:50:51 2014 -0700"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Mon Sep 15 01:41:17 2014 -0700"
      },
      "message": "diag: Update SSIDs, event ids and log codes\n\nThe SSIDs, event IDs and log codes have fallen out of date.\nBring the SSIDs, event IDs and log codes up to date.\n\nChange-Id: I8e6a2af8baba359f32a489ddc06f619de826f97b\nSigned-off-by: Ravi Aravamudhan \u003caravamud@codeaurora.org\u003e\n"
    },
    {
      "commit": "313acf06fb916820d79f522a7ac9e046b876b74b",
      "tree": "adce9187c1a6bfba588af46f073ee26d5407909b",
      "parents": [
        "159c06a721a79de12b76eb32a3fd9d653bb2bc03"
      ],
      "author": {
        "name": "Katish Paran",
        "email": "kparan@codeaurora.org",
        "time": "Fri Sep 12 12:39:34 2014 +0530"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Fri Sep 12 10:56:42 2014 -0700"
      },
      "message": "diag: Bring ssids for cne atp feature up to date\n\nThis patch updates the ssids for cne atp feature.\n\nChange-Id: I762da4e2ae6197cb766620ffa3c0df14905354a2\nSigned-off-by: Katish Paran \u003ckparan@codeaurora.org\u003e\n"
    },
    {
      "commit": "5ac504e0708535b392675243000292ae60b705d0",
      "tree": "dfc779ade74a9b38f25460bb2e0b224dcabde6d5",
      "parents": [
        "2cc680d69ffec80a6e75ab46edb4706fcd50cc82"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@I-love.SAKURA.ne.jp",
        "time": "Thu Nov 14 14:31:56 2013 -0800"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Mon Aug 25 12:47:39 2014 -0700"
      },
      "message": "seq_file: introduce seq_setwidth() and seq_pad()\n\nThere are several users who want to know bytes written by seq_*() for\nalignment purpose.  Currently they are using %n format for knowing it\nbecause seq_*() returns 0 on success.\n\nThis patch introduces seq_setwidth() and seq_pad() for allowing them to\nalign without using %n format.\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nGit-commit: 839cc2a94cc3665bafe32203c2f095f4dd470a80)\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nCRs-fixed: 665291\nChange-Id: I727d9af5ed320d717295c9d0f82c88623fb181c1\nSigned-off-by: David Brown \u003cdavidb@codeaurora.org\u003e\n"
    },
    {
      "commit": "509a15a5d6b0cfd3e4e396844615df6335ff4c62",
      "tree": "a3f92b13246768ed53016216cac459a86ec1f772",
      "parents": [
        "ad52eef552c7896ec6024ee72fc126167fe5c4e2"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sat Jul 26 08:58:10 2014 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 14 08:42:35 2014 +0800"
      },
      "message": "ip: make IP identifiers less predictable\n\n[ Upstream commit 04ca6973f7c1a0d8537f2d9906a0cf8e69886d75 ]\n\nIn \"Counting Packets Sent Between Arbitrary Internet Hosts\", Jeffrey and\nJedidiah describe ways exploiting linux IP identifier generation to\ninfer whether two machines are exchanging packets.\n\nWith commit 73f156a6e8c1 (\"inetpeer: get rid of ip_id_count\"), we\nchanged IP id generation, but this does not really prevent this\nside-channel technique.\n\nThis patch adds a random amount of perturbation so that IP identifiers\nfor a given destination [1] are no longer monotonically increasing after\nan idle period.\n\nNote that prandom_u32_max(1) returns 0, so if generator is used at most\nonce per jiffy, this patch inserts no hole in the ID suite and do not\nincrease collision probability.\n\nThis is jiffies based, so in the worst case (HZ\u003d1000), the id can\nrollover after ~65 seconds of idle time, which should be fine.\n\nWe also change the hash used in __ip_select_ident() to not only hash\non daddr, but also saddr and protocol, so that ICMP probes can not be\nused to infer information for other protocols.\n\nFor IPv6, adds saddr into the hash as well, but not nexthdr.\n\nIf I ping the patched target, we can see ID are now hard to predict.\n\n21:57:11.008086 IP (...)\n    A \u003e target: ICMP echo request, seq 1, length 64\n21:57:11.010752 IP (... id 2081 ...)\n    target \u003e A: ICMP echo reply, seq 1, length 64\n\n21:57:12.013133 IP (...)\n    A \u003e target: ICMP echo request, seq 2, length 64\n21:57:12.015737 IP (... id 3039 ...)\n    target \u003e A: ICMP echo reply, seq 2, length 64\n\n21:57:13.016580 IP (...)\n    A \u003e target: ICMP echo request, seq 3, length 64\n21:57:13.019251 IP (... id 3437 ...)\n    target \u003e A: ICMP echo reply, seq 3, length 64\n\n[1] TCP sessions uses a per flow ID generator not changed by this patch.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nReported-by: Jeffrey Knockel \u003cjeffk@cs.unm.edu\u003e\nReported-by: Jedidiah R. Crandall \u003ccrandall@cs.unm.edu\u003e\nCc: Willy Tarreau \u003cw@1wt.eu\u003e\nCc: Hannes Frederic Sowa \u003channes@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "ad52eef552c7896ec6024ee72fc126167fe5c4e2",
      "tree": "ad82cf940ab103a6b51260f681b22d21f6ecdb2c",
      "parents": [
        "0a9d91dca3b9f797f2fc615486c12afa59f19a3b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Jun 02 05:26:03 2014 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 14 08:42:35 2014 +0800"
      },
      "message": "inetpeer: get rid of ip_id_count\n\n[ Upstream commit 73f156a6e8c1074ac6327e0abd1169e95eb66463 ]\n\nIdeally, we would need to generate IP ID using a per destination IP\ngenerator.\n\nlinux kernels used inet_peer cache for this purpose, but this had a huge\ncost on servers disabling MTU discovery.\n\n1) each inet_peer struct consumes 192 bytes\n\n2) inetpeer cache uses a binary tree of inet_peer structs,\n   with a nominal size of ~66000 elements under load.\n\n3) lookups in this tree are hitting a lot of cache lines, as tree depth\n   is about 20.\n\n4) If server deals with many tcp flows, we have a high probability of\n   not finding the inet_peer, allocating a fresh one, inserting it in\n   the tree with same initial ip_id_count, (cf secure_ip_id())\n\n5) We garbage collect inet_peer aggressively.\n\nIP ID generation do not have to be \u0027perfect\u0027\n\nGoal is trying to avoid duplicates in a short period of time,\nso that reassembly units have a chance to complete reassembly of\nfragments belonging to one message before receiving other fragments\nwith a recycled ID.\n\nWe simply use an array of generators, and a Jenkin hash using the dst IP\nas a key.\n\nipv6_select_ident() is put back into net/ipv6/ip6_output.c where it\nbelongs (it is only used from this file)\n\nsecure_ip_id() and secure_ipv6_id() no longer are needed.\n\nRename ip_select_ident_more() to ip_select_ident_segs() to avoid\nunnecessary decrement/increment of the number of segments.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "68199d62034a736cae12fee49b0dad5342612583",
      "tree": "12d193b46dd9e8ef54788706db22a32379f89148",
      "parents": [
        "473d8a237b359c41225458f3d7c6aa2e5beb40d5"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Aug 04 21:42:10 2014 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 07 12:00:11 2014 -0700"
      },
      "message": "Revert: \"net: ip, ipv6: handle gso skbs in forwarding path\"\n\nThis reverts commit 29a3cd46644ec8098dbe1c12f89643b5c11831a9 which is\ncommit fe6cc55f3a9a053482a76f5a6b2257cee51b4663 upstream.\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Marcelo Ricardo Leitner \u003cmleitner@redhat.com\u003e\nCc: Florian Westphal \u003cfw@strlen.de\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Thomas Jarosch \u003cthomas.jarosch@intra2net.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "f73ff697833654ee578b606ea746d15dc1220aab",
      "tree": "5fba9efb577e61579fc9dba897f500b200fd6985",
      "parents": [
        "7f6c1deb02e6ac110645c87fd2446594803a8a72"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Jun 04 16:11:40 2014 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 07 12:00:10 2014 -0700"
      },
      "message": "printk: rename printk_sched to printk_deferred\n\ncommit aac74dc495456412c4130a1167ce4beb6c1f0b38 upstream.\n\nAfter learning we\u0027ll need some sort of deferred printk functionality in\nthe timekeeping core, Peter suggested we rename the printk_sched function\nso it can be reused by needed subsystems.\n\nThis only changes the function name. No logic changes.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Jiri Bohac \u003cjbohac@suse.cz\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "8cb56e3467fd98e6f9396553402cf22b08f1e5a5",
      "tree": "55167cefd4f2d970a4723a35f61d7322d256b0ba",
      "parents": [
        "2887dec4438f37edfd8dbf355af23d61cfdd4c27"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 26 13:03:12 2014 +0900"
      },
      "committer": {
        "name": "Samir Mehta",
        "email": "samirn@codeaurora.org",
        "time": "Tue Aug 05 18:02:48 2014 +0530"
      },
      "message": "net: support marking accepting TCP sockets\n\nWhen using mark-based routing, sockets returned from accept()\nmay need to be marked differently depending on the incoming\nconnection request.\n\nThis is the case, for example, if different socket marks identify\ndifferent networks: a listening socket may want to accept\nconnections from all networks, but each connection should be\nmarked with the network that the request came in on, so that\nsubsequent packets are sent on the correct network.\n\nThis patch adds a sysctl to mark TCP sockets based on the fwmark\nof the incoming SYN packet. If enabled, and an unmarked socket\nreceives a SYN, then the SYN packet\u0027s fwmark is written to the\nconnection\u0027s inet_request_sock, and later written back to the\naccepted socket when the connection is established.  If the\nsocket already has a nonzero mark, then the behaviour is the same\nas it is today, i.e., the listening socket\u0027s fwmark is used.\n\nBlack-box tested using user-mode linux:\n\n- IPv4/IPv6 SYN+ACK, FIN, etc. packets are routed based on the\n  mark of the incoming SYN packet.\n- The socket returned by accept() is marked with the mark of the\n  incoming SYN packet.\n- Tested with syncookies\u003d1 and syncookies\u003d2.\n\nChange-Id: I5e8c9b989762a93f3eb5a0c1b4df44f62d57f3cb\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\n[imaund@codeaurora.org: Resolve trivial merge conflicts.]\nGit-commit: 4593f09b1f9939ec6ed2f8d7848def26b98c47ac\nGit-repo: https://android.googlesource.com/kernel/common.git\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\nSigned-off-by: Samir Mehta \u003csamirn@codeaurora.org\u003e\n"
    },
    {
      "commit": "2887dec4438f37edfd8dbf355af23d61cfdd4c27",
      "tree": "820f262ff612b449760fbf18a498f74e4f5958eb",
      "parents": [
        "653be181eef3589b47119cd68c985975119fa61f"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Mar 18 20:52:27 2014 +0900"
      },
      "committer": {
        "name": "Samir Mehta",
        "email": "samirn@codeaurora.org",
        "time": "Tue Aug 05 18:01:30 2014 +0530"
      },
      "message": "net: add a sysctl to reflect the fwmark on replies\n\nKernel-originated IP packets that have no user socket associated\nwith them (e.g., ICMP errors and echo replies, TCP RSTs, etc.)\nare emitted with a mark of zero. Add a sysctl to make them have\nthe same mark as the packet they are replying to.\n\nThis allows an administrator that wishes to do so to use\nmark-based routing, firewalling, etc. for these replies by\nmarking the original packets inbound.\n\nTested using user-mode linux:\n - ICMP/ICMPv6 echo replies and errors.\n - TCP RST packets (IPv4 and IPv6).\n\nChange-Id: I95d896647b278d092ef331d1377b959da1deb042\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nGit-commit: 3356997e1e1b2aa9959f046203e6d0b193bbd7f7\nGit-repo: https://android.googlesource.com/kernel/common.git\n[imaund@codeaurora.org: Resolve trivial merge conflicts.]\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\nSigned-off-by: Samir Mehta \u003csamirn@codeaurora.org\u003e\n"
    },
    {
      "commit": "653be181eef3589b47119cd68c985975119fa61f",
      "tree": "70622b13f1dd7ec4ce74ada46f489abe582fe2c5",
      "parents": [
        "cfc667e1eac22c3ee27aceaebb18e68102a2c65b"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Mar 26 19:35:41 2014 +0900"
      },
      "committer": {
        "name": "Samir Mehta",
        "email": "samirn@codeaurora.org",
        "time": "Tue Aug 05 17:58:34 2014 +0530"
      },
      "message": "net: ipv6: autoconf routes into per-device tables\n\nCurrently, IPv6 router discovery always puts routes into\nRT6_TABLE_MAIN. This causes problems for connection managers\nthat want to support multiple simultaneous network connections\nand want control over which one is used by default (e.g., wifi\nand wired).\n\nTo work around this connection managers typically take the routes\nthey prefer and copy them to static routes with low metrics in\nthe main table. This puts the burden on the connection manager\nto watch netlink to see if the routes have changed, delete the\nroutes when their lifetime expires, etc.\n\nInstead, this patch adds a per-interface sysctl to have the\nkernel put autoconf routes into different tables. This allows\neach interface to have its own autoconf table, and choosing the\ndefault interface (or using different interfaces at the same\ntime for different types of traffic) can be done using\nappropriate ip rules.\n\nThe sysctl behaves as follows:\n\n- \u003d 0: default. Put routes into RT6_TABLE_MAIN as before.\n- \u003e 0: manual. Put routes into the specified table.\n- \u003c 0: automatic. Add the absolute value of the sysctl to the\n       device\u0027s ifindex, and use that table.\n\nThe automatic mode is most useful in conjunction with\nnet.ipv6.conf.default.accept_ra_rt_table. A connection manager\nor distribution could set it to, say, -100 on boot, and\nthereafter just use IP rules.\n\nChange-Id: I093d39fb06ec413905dc0d0d5792c1bc5d5c73a9\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nGit-commit: 5fe5c512af518d0abbbc0d2fafa8e355f518c2a9\nGit-repo: https://android.googlesource.com/kernel/common.git\n[imaund@codeaurora.org: Resolve trivial merge conflicts]\nSigned-off-by: Ian Maund \u003cimaund@codeaurora.org\u003e\n[samirn@codeaurora.org: Resolve trivial merge conflicts]\nSigned-off-by: Samir Mehta \u003csamirn@codeaurora.org\u003e\n"
    },
    {
      "commit": "6eee052d52d555f00d6b72e35bd752942221afa1",
      "tree": "6d0b2e30f0363d254e04c1c54163a25d99e48a8f",
      "parents": [
        "db610f7571f287db43c153ce26dd20dbd44d5173"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Aug 01 14:47:13 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Aug 01 14:54:03 2014 -0700"
      },
      "message": "msm: perf: Fix standalone compilation\n\nInclude perf_trace_counters header file in trace directory to\navoid compile errors when compiling standalone kernel image.\n\nChange-Id: I4cb2928e37357eb6bf5f4118858f558dbe2f7f96\n"
    },
    {
      "commit": "db610f7571f287db43c153ce26dd20dbd44d5173",
      "tree": "2b972c70901065346d4dea9365a5319f788e2814",
      "parents": [
        "5ffeb0ef32669ed7b5905a60961d9b4bbd2b4d6d",
        "5bfc8718998bedfeea1997d83838ffd1981cbf12"
      ],
      "author": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Fri Aug 01 14:53:55 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Aug 01 14:53:55 2014 -0700"
      },
      "message": "Merge remote-tracking branch \u0027codeaurora/caf/kk_2.7_rb1.41\u0027 into cm-11.0\n\nConflicts:\n\tkernel/events/core.c\n\nChange-Id: I52dfe8b56924fb2d86bf1487eed6114342621603\n"
    },
    {
      "commit": "b06b5c6204bdc7c571feedb6b16188ba62feb9a6",
      "tree": "91f752326bfe880af1170cc9a9a55b8af21c7e50",
      "parents": [
        "883ea134ae75eb03c9f08553a81957a808cee96b"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Thu May 31 16:26:04 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 31 12:54:53 2014 -0700"
      },
      "message": "introduce SIZE_MAX\n\ncommit a3860c1c5dd1137db23d7786d284939c5761d517 upstream.\n\nULONG_MAX is often used to check for integer overflow when calculating\nallocation size.  While ULONG_MAX happens to work on most systems, there\nis no guarantee that `size_t\u0027 must be the same size as `long\u0027.\n\nThis patch introduces SIZE_MAX, the maximum value of `size_t\u0027, to improve\nportability and readability for allocation size validation.\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nAcked-by: Alex Elder \u003celder@dreamhost.com\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "80cd492c4ed16b106113c60a004171e858aff88a",
      "tree": "31bc003778dda97f8008651bd07652220ebaadfe",
      "parents": [
        "6f0844c44da00772a8ab116fe8bb8549517a8859"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Jul 23 09:05:27 2014 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 31 12:54:51 2014 -0700"
      },
      "message": "libata: introduce ata_host-\u003en_tags to avoid oops on SAS controllers\n\ncommit 1a112d10f03e83fb3a2fdc4c9165865dec8a3ca6 upstream.\n\n1871ee134b73 (\"libata: support the ata host which implements a queue\ndepth less than 32\") directly used ata_port-\u003escsi_host-\u003ecan_queue from\nata_qc_new() to determine the number of tags supported by the host;\nunfortunately, SAS controllers doing SATA don\u0027t initialize -\u003escsi_host\nleading to the following oops.\n\n BUG: unable to handle kernel NULL pointer dereference at 0000000000000058\n IP: [\u003cffffffff814e0618\u003e] ata_qc_new_init+0x188/0x1b0\n PGD 0\n Oops: 0002 [#1] SMP\n Modules linked in: isci libsas scsi_transport_sas mgag200 drm_kms_helper ttm\n CPU: 1 PID: 518 Comm: udevd Not tainted 3.16.0-rc6+ #62\n Hardware name: Intel Corporation S2600CO/S2600CO, BIOS SE5C600.86B.02.02.0002.122320131210 12/23/2013\n task: ffff880c1a00b280 ti: ffff88061a000000 task.ti: ffff88061a000000\n RIP: 0010:[\u003cffffffff814e0618\u003e]  [\u003cffffffff814e0618\u003e] ata_qc_new_init+0x188/0x1b0\n RSP: 0018:ffff88061a003ae8  EFLAGS: 00010012\n RAX: 0000000000000001 RBX: ffff88000241ca80 RCX: 00000000000000fa\n RDX: 0000000000000020 RSI: 0000000000000020 RDI: ffff8806194aa298\n RBP: ffff88061a003ae8 R08: ffff8806194a8000 R09: 0000000000000000\n R10: 0000000000000000 R11: ffff88000241ca80 R12: ffff88061ad58200\n R13: ffff8806194aa298 R14: ffffffff814e67a0 R15: ffff8806194a8000\n FS:  00007f3ad7fe3840(0000) GS:ffff880627620000(0000) knlGS:0000000000000000\n CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: 0000000000000058 CR3: 000000061a118000 CR4: 00000000001407e0\n Stack:\n  ffff88061a003b20 ffffffff814e96e1 ffff88000241ca80 ffff88061ad58200\n  ffff8800b6bf6000 ffff880c1c988000 ffff880619903850 ffff88061a003b68\n  ffffffffa0056ce1 ffff88061a003b48 0000000013d6e6f8 ffff88000241ca80\n Call Trace:\n  [\u003cffffffff814e96e1\u003e] ata_sas_queuecmd+0xa1/0x430\n  [\u003cffffffffa0056ce1\u003e] sas_queuecommand+0x191/0x220 [libsas]\n  [\u003cffffffff8149afee\u003e] scsi_dispatch_cmd+0x10e/0x300 [\u003cffffffff814a3bc5\u003e] scsi_request_fn+0x2f5/0x550\n  [\u003cffffffff81317613\u003e] __blk_run_queue+0x33/0x40\n  [\u003cffffffff8131781a\u003e] queue_unplugged+0x2a/0x90\n  [\u003cffffffff8131ceb4\u003e] blk_flush_plug_list+0x1b4/0x210\n  [\u003cffffffff8131d274\u003e] blk_finish_plug+0x14/0x50\n  [\u003cffffffff8117eaa8\u003e] __do_page_cache_readahead+0x198/0x1f0\n  [\u003cffffffff8117ee21\u003e] force_page_cache_readahead+0x31/0x50\n  [\u003cffffffff8117ee7e\u003e] page_cache_sync_readahead+0x3e/0x50\n  [\u003cffffffff81172ac6\u003e] generic_file_read_iter+0x496/0x5a0\n  [\u003cffffffff81219897\u003e] blkdev_read_iter+0x37/0x40\n  [\u003cffffffff811e307e\u003e] new_sync_read+0x7e/0xb0\n  [\u003cffffffff811e3734\u003e] vfs_read+0x94/0x170\n  [\u003cffffffff811e43c6\u003e] SyS_read+0x46/0xb0\n  [\u003cffffffff811e33d1\u003e] ? SyS_lseek+0x91/0xb0\n  [\u003cffffffff8171ee29\u003e] system_call_fastpath+0x16/0x1b\n Code: 00 00 00 88 50 29 83 7f 08 01 19 d2 83 e2 f0 83 ea 50 88 50 34 c6 81 1d 02 00 00 40 c6 81 17 02 00 00 00 5d c3 66 0f 1f 44 00 00 \u003c89\u003e 14 25 58 00 00 00\n\nFix it by introducing ata_host-\u003en_tags which is initialized to\nATA_MAX_QUEUE - 1 in ata_host_init() for SAS controllers and set to\nscsi_host_template-\u003ecan_queue in ata_host_register() for !SAS ones.\nAs SAS hosts are never registered, this will give them the same\nATA_MAX_QUEUE - 1 as before.  Note that we can\u0027t use\nscsi_host-\u003ecan_queue directly for SAS hosts anyway as they can go\nhigher than the libata maximum.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Mike Qiu \u003cqiudayu@linux.vnet.ibm.com\u003e\nReported-by: Jesse Brandeburg \u003cjesse.brandeburg@gmail.com\u003e\nReported-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nTested-by: Alexey Kardashevskiy \u003caik@ozlabs.ru\u003e\nFixes: 1871ee134b73 (\"libata: support the ata host which implements a queue depth less than 32\")\nCc: Kevin Hao \u003chaokexin@gmail.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "eb688f6a4b6090dbcdccc935cf074618c0f421c1",
      "tree": "a250da8a12592fdb19ec3cf27e52b8ba6ed11abb",
      "parents": [
        "bc96ff59b2f19e924d9e15e24cee19723d674b92"
      ],
      "author": {
        "name": "Syam Sidhardhan",
        "email": "s.syam@samsung.com",
        "time": "Thu Apr 12 20:33:17 2012 +0530"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jul 09 10:51:20 2014 -0700"
      },
      "message": "Bluetooth: Remove unused hci_le_ltk_reply()\n\ncommit e10b9969f217c948c5523045f44eba4d3a758ff0 upstream.\n\nIn this API, we were using sizeof operator for an array\ngiven as function argument, which is invalid.\nHowever this API is not used anywhere.\n\nSigned-off-by: Syam Sidhardhan \u003cs.syam@samsung.com\u003e\nSigned-off-by: Gustavo Padovan \u003cgustavo@padovan.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "3943a08b97f2e36e01172d1f321e43c8067c9094",
      "tree": "4e0cb6dd2d9e58eac52d13b72256bcc81e4c745c",
      "parents": [
        "939a3a4989f3210a20f5e68734896c43d9b6ae6c"
      ],
      "author": {
        "name": "Bjørn Mork",
        "email": "bjorn@mork.no",
        "time": "Wed Oct 31 06:08:39 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jul 09 10:51:19 2014 -0700"
      },
      "message": "USB: add USB_DEVICE_INTERFACE_CLASS macro\n\ncommit 17b72feb2be14e6d37023267dc0e199e8e0e3fdc upstream.\n\nMatching on device and interface class with with unspecified\nsubclass and protocol is sometimes useful.  This is slightly\ndifferent from USB_DEVICE_AND_INTERFACE_INFO which requires\nthe full interface class/subclass/protocol triplet.\n\nSigned-off-by: Bjørn Mork \u003cbjorn@mork.no\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "0c3351a0a4815ea566d3febf82033b6c55ed4a2d",
      "tree": "6aaeb576ba3bda684481e2ca0d4b185b7b0ff6a6",
      "parents": [
        "e3293b8639a90b7227be9c273af0a45015c499bb"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Sun Apr 13 20:58:54 2014 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 06 18:49:20 2014 -0700"
      },
      "message": "tracing: Fix syscall_*regfunc() vs copy_process() race\n\ncommit 4af4206be2bd1933cae20c2b6fb2058dbc887f7c upstream.\n\nsyscall_regfunc() and syscall_unregfunc() should set/clear\nTIF_SYSCALL_TRACEPOINT system-wide, but do_each_thread() can race\nwith copy_process() and miss the new child which was not added to\nthe process/thread lists yet.\n\nChange copy_process() to update the child\u0027s TIF_SYSCALL_TRACEPOINT\nunder tasklist.\n\nLink: http://lkml.kernel.org/p/20140413185854.GB20668@redhat.com\n\nFixes: a871bd33a6c0 \"tracing: Add syscall tracepoints\"\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e3293b8639a90b7227be9c273af0a45015c499bb",
      "tree": "f6e8281c21358eb0ad7666a1b78b03547f48aaba",
      "parents": [
        "60db34152db66ac6e6b6e12c1d7229179ff4711a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 03 15:43:15 2014 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 06 18:49:20 2014 -0700"
      },
      "message": "ptrace,x86: force IRET path after a ptrace_stop()\n\ncommit b9cd18de4db3c9ffa7e17b0dc0ca99ed5aa4d43a upstream.\n\nThe \u0027sysret\u0027 fastpath does not correctly restore even all regular\nregisters, much less any segment registers or reflags values.  That is\nvery much part of why it\u0027s faster than \u0027iret\u0027.\n\nNormally that isn\u0027t a problem, because the normal ptrace() interface\ncatches the process using the signal handler infrastructure, which\nalways returns with an iret.\n\nHowever, some paths can get caught using ptrace_event() instead of the\nsignal path, and for those we need to make sure that we aren\u0027t going to\nreturn to user space using \u0027sysret\u0027.  Otherwise the modifications that\nmay have been done to the register set by the tracer wouldn\u0027t\nnecessarily take effect.\n\nFix it by forcing IRET path by setting TIF_NOTIFY_RESUME from\narch_ptrace_stop_needed() which is invoked from ptrace_stop().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1f29351617ffe827edf80ffdfdef2da3a2494f96",
      "tree": "61af1c6d0e19add8ec09856334928337276fa5e0",
      "parents": [
        "a97df3f22b83742deb9191d53928641ec3befb6e"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri Jul 20 09:23:07 2012 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jun 30 20:01:33 2014 -0700"
      },
      "message": "skbuff: add an api to orphan frags\n\ncommit a353e0ce0fd42d8859260666d1e9b10f2abd4698 upstream.\n\nMany places do\n       if ((skb_shinfo(skb)-\u003etx_flags \u0026 SKBTX_DEV_ZEROCOPY))\n\t\tskb_copy_ubufs(skb, gfp_mask);\nto copy and invoke frag destructors if necessary.\nAdd an inline helper for this.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "a97df3f22b83742deb9191d53928641ec3befb6e",
      "tree": "c34f984ed3c4f844aeb3b2076148d2f334e5b134",
      "parents": [
        "1d48df4863c4a4d40809575efa1f101b1e8090b5"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Mar 07 14:53:45 2013 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jun 30 20:01:33 2014 -0700"
      },
      "message": "genirq: Sanitize spurious interrupt detection of threaded irqs\n\ncommit 1e77d0a1ed7417d2a5a52a7b8d32aea1833faa6c upstream.\n\nTill reported that the spurious interrupt detection of threaded\ninterrupts is broken in two ways:\n\n- note_interrupt() is called for each action thread of a shared\n  interrupt line. That\u0027s wrong as we are only interested whether none\n  of the device drivers felt responsible for the interrupt, but by\n  calling multiple times for a single interrupt line we account\n  IRQ_NONE even if one of the drivers felt responsible.\n\n- note_interrupt() when called from the thread handler is not\n  serialized. That leaves the members of irq_desc which are used for\n  the spurious detection unprotected.\n\nTo solve this we need to defer the spurious detection of a threaded\ninterrupt to the next hardware interrupt context where we have\nimplicit serialization.\n\nIf note_interrupt is called with action_ret \u003d\u003d IRQ_WAKE_THREAD, we\ncheck whether the previous interrupt requested a deferred check. If\nnot, we request a deferred check for the next hardware interrupt and\nreturn.\n\nIf set, we check whether one of the interrupt threads signaled\nsuccess. Depending on this information we feed the result into the\nspurious detector.\n\nIf one primary handler of a shared interrupt returns IRQ_HANDLED we\ndisable the deferred check of irq threads on the same line, as we have\nfound at least one device driver who cared.\n\nReported-by: Till Straumann \u003cstrauman@slac.stanford.edu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Austin Schuh \u003caustin@peloton-tech.com\u003e\nCc: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\nCc: Wolfgang Grandegger \u003cwg@grandegger.com\u003e\nCc: Pavel Pisa \u003cpisa@cmp.felk.cvut.cz\u003e\nCc: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\nCc: linux-can@vger.kernel.org\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1303071450130.22263@ionos\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "30a9d74d085964d3b6c0ff392ba6cd5f8660f732",
      "tree": "89df11f3c50360c904d5da1aa56f0973b29d6046",
      "parents": [
        "84381577e9ea021e708f01b2b13950bb6162b493"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Sun Jun 22 23:21:08 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jun 30 12:15:08 2014 -0700"
      },
      "message": "msm: HTC: T6: Import T6 board files\n\n* Add support for HTC T6 (HTC One Max)\n\nChange-Id: Id751dd0e23db408ad5cdb3b50028a296093a7038\n"
    },
    {
      "commit": "84b6fd30ff8f75f898fd5bf149d25813c1fd1d0e",
      "tree": "59a69663b92c94d53deff661b200bfe2fe06f9bb",
      "parents": [
        "776c52102ae0f1a1aeb2e29aa4e0f9a67159e9a3"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Sun Jun 22 22:01:47 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jun 30 11:42:11 2014 -0700"
      },
      "message": "input: touchscreen: max1187x: Import max1187x driver for T6\n\n* HTC package version: t6ul-3.4.10-g0534bc3\n\nChange-Id: I931d5484a8c8d05ef2ac329983e8318028f2d6fe\n"
    },
    {
      "commit": "776c52102ae0f1a1aeb2e29aa4e0f9a67159e9a3",
      "tree": "f85bc12eb4db6bda10cc71db69ba269d60b05285",
      "parents": [
        "52f365cb415d644a293643efb7444ca4394597cd"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Sun Jun 22 21:55:06 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jun 30 11:41:32 2014 -0700"
      },
      "message": "input: lsm330: Add LSM330 gyroscope/accelerometer driver\n\n* HTC kernel version: t6ul-3.4.10-g0534bc3\n\nChange-Id: I48f84208bdcd2f44eedd87da05b4d07ad33a9ff9\n"
    },
    {
      "commit": "39085c8966f550d4b39d18683e39e79be7660a72",
      "tree": "85bf43e45076e56fd5e79fd473a309ea56671549",
      "parents": [
        "db7d0670393b6febc8967f193c08427bbd6f55d3"
      ],
      "author": {
        "name": "Markus F.X.J. Oberhumer",
        "email": "markus@oberhumer.com",
        "time": "Mon Aug 13 17:25:44 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 26 15:10:29 2014 -0400"
      },
      "message": "lib/lzo: Update LZO compression to current upstream version\n\ncommit 8b975bd3f9089f8ee5d7bbfd798537b992bbc7e7 upstream.\n\nThis commit updates the kernel LZO code to the current upsteam version\nwhich features a significant speed improvement - benchmarking the Calgary\nand Silesia test corpora typically shows a doubled performance in\nboth compression and decompression on modern i386/x86_64/powerpc machines.\n\nSigned-off-by: Markus F.X.J. Oberhumer \u003cmarkus@oberhumer.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e4036860a70f956370a18ef06a19fa10a25990d2",
      "tree": "dc6caa66184413a780eaa1fb125ab56634f47b5a",
      "parents": [
        "118264918814946dd5ce4c87f1c643f2d20e70f6"
      ],
      "author": {
        "name": "Lars-Peter Clausen",
        "email": "lars@metafoo.de",
        "time": "Wed Jun 18 13:32:31 2014 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 26 15:10:29 2014 -0400"
      },
      "message": "ALSA: control: Protect user controls against concurrent access\n\ncommit 07f4d9d74a04aa7c72c5dae0ef97565f28f17b92 upstream.\n\nThe user-control put and get handlers as well as the tlv do not protect against\nconcurrent access from multiple threads. Since the state of the control is not\nupdated atomically it is possible that either two write operations or a write\nand a read operation race against each other. Both can lead to arbitrary memory\ndisclosure. This patch introduces a new lock that protects user-controls from\nconcurrent access. Since applications typically access controls sequentially\nthan in parallel a single lock per card should be fine.\n\nSigned-off-by: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nAcked-by: Jaroslav Kysela \u003cperex@perex.cz\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "843c0172bce9a30d77c85f33268b1469ead716ad",
      "tree": "a44de99c781b64ac7374608d251685ad3cf9ad59",
      "parents": [
        "0a4474aaad97472efcd10a3e8d897d5798206f0e"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jiri@resnulli.us",
        "time": "Thu May 29 20:46:17 2014 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 26 15:10:28 2014 -0400"
      },
      "message": "team: fix mtu setting\n\n[ Upstream commit 9d0d68faea6962d62dd501cd6e71ce5cc8ed262b ]\n\nNow it is not possible to set mtu to team device which has a port\nenslaved to it. The reason is that when team_change_mtu() calls\ndev_set_mtu() for port device, notificator for NETDEV_PRECHANGEMTU\nevent is called and team_device_event() returns NOTIFY_BAD forbidding\nthe change. So fix this by returning NOTIFY_DONE here in case team is\nchanging mtu in team_change_mtu().\n\nIntroduced-by: 3d249d4c \"net: introduce ethernet teaming device\"\nSigned-off-by: Jiri Pirko \u003cjiri@resnulli.us\u003e\nAcked-by: Flavio Leitner \u003cfbl@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "0a4474aaad97472efcd10a3e8d897d5798206f0e",
      "tree": "eedca98333d8d5ec4a09195faadef3fd6e2b52c2",
      "parents": [
        "d0e49724c557974bb109ffee5cd3eb4864b8cc1d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Thu May 29 08:45:14 2014 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 26 15:10:28 2014 -0400"
      },
      "message": "net: fix inet_getid() and ipv6_select_ident() bugs\n\n[ Upstream commit 39c36094d78c39e038c1e499b2364e13bce36f54 ]\n\nI noticed we were sending wrong IPv4 ID in TCP flows when MTU discovery\nis disabled.\nNote how GSO/TSO packets do not have monotonically incrementing ID.\n\n06:37:41.575531 IP (id 14227, proto: TCP (6), length: 4396)\n06:37:41.575534 IP (id 14272, proto: TCP (6), length: 65212)\n06:37:41.575544 IP (id 14312, proto: TCP (6), length: 57972)\n06:37:41.575678 IP (id 14317, proto: TCP (6), length: 7292)\n06:37:41.575683 IP (id 14361, proto: TCP (6), length: 63764)\n\nIt appears I introduced this bug in linux-3.1.\n\ninet_getid() must return the old value of peer-\u003eip_id_count,\nnot the new one.\n\nLets revert this part, and remove the prevention of\na null identification field in IPv6 Fragment Extension Header,\nwhich is dubious and not even done properly.\n\nFixes: 87c48fa3b463 (\"ipv6: make fragment identifications less predictable\")\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "4f234f710f6ab6cd3ed97455715b14e6b4a93f34",
      "tree": "05b54b81da1c076fe663ec0a9efa923c1824c009",
      "parents": [
        "170cd053d8bd24bee7eaf912931428c2c2282ba5",
        "c4f1f8cec1e3c7e3526f6666939f22d23fcd8714"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jun 24 14:25:22 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jun 24 14:25:22 2014 -0700"
      },
      "message": "Merge remote-tracking branch \u0027codeaurora/caf/kk_2.7_rb1.40\u0027 into cm-11.0\n\nConflicts:\n\tdrivers/media/video/msm/csi/msm_ispif.c\n\tdrivers/media/video/msm/msm_mctl_pp.c\n\nChange-Id: Iedfd6dc3e8dea93df993e0b043ab5eee55784a12\n"
    },
    {
      "commit": "22a20564536ce0ae40238844215e666263a53c33",
      "tree": "ba35269e86ad01024b106c223e7372596fce18f3",
      "parents": [
        "8013116c96aefb8da3c8e5548da9a45349e0399f"
      ],
      "author": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jun 07 07:37:52 2014 -0400"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sun Jun 22 21:31:45 2014 -0500"
      },
      "message": "leds:  Add in lm8502 driver\n"
    },
    {
      "commit": "d487aba56e433bf8ba3c149dac64eb3a4da6a636",
      "tree": "0f5c1263da6277d428fc1e950ffdd5bce9970afd",
      "parents": [
        "140747ed82e890d77836878eac378322427dabe9"
      ],
      "author": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri Jun 06 09:04:06 2014 -0400"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sun Jun 22 21:29:24 2014 -0500"
      },
      "message": "includes:  Needed for Userspace camera HAL\n"
    },
    {
      "commit": "140747ed82e890d77836878eac378322427dabe9",
      "tree": "fffa47d4ee404b602b8a2b047430f72c87c4015a",
      "parents": [
        "24ff2d770bca51979b98f78b3934ec47fbca47ee"
      ],
      "author": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Jun 04 21:20:26 2014 -0400"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sun Jun 22 21:29:16 2014 -0500"
      },
      "message": "tenderloin:  Update to where we are at with current kernel\n"
    },
    {
      "commit": "d8cd0b8e3d557698ed31d3415c488790de8b92ee",
      "tree": "63309b1324d3d1f6038a6d24d56ef91b785fcf33",
      "parents": [
        "c190d7100a65950230ef21c3629a367a4449d7e0"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jun 17 23:41:28 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Wed Jun 18 00:04:36 2014 -0700"
      },
      "message": "USB: msm_otg: Update HTC variant of msm_otg\n\nHTC kernel version: m7stock_3.4.10-g1a25406\n\nChange-Id: I2707390c287a6d2a9f05814aea25362347240048\n"
    },
    {
      "commit": "c190d7100a65950230ef21c3629a367a4449d7e0",
      "tree": "248c149131fd06ce23a3964c0285b5c68dc322e3",
      "parents": [
        "6823498edefcad0152a4ee9ea05253c458729d13"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jun 17 23:01:53 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Wed Jun 18 00:04:35 2014 -0700"
      },
      "message": "power: pm8921: Update HTC pm8921 drivers\n\n* HTC kernel version: m7stock_3.4.10-g1a25406\n\nChange-Id: I5b35f54a48b051b7f3b03f0d867b9d14d9ddf8a2\n"
    }
  ],
  "next": "1996c132e6e6524d2ecb386b8d96b8c32343ca67"
}
