{"push_id":555200134,"size":159,"distinct_size":159,"ref":"refs/heads/lollipop","head":"e7998db2e4e046b0e94adc8f1e73129e4b8053d3","before":"9f6def793da65d150a96f875044d905049f71044","commits":[{"sha":"1a808fb8dbf5a262a8eb611cc238dc6a0bb63137","author":{"email":"027f0158ac3b417c565c1fb96c84300078c91cf6@gmail.com","name":"Evan McClain"},"message":"F2FS: Backport to 3.4\n\nBased off of patches here:\nnowcomputing/f2fs-backports#1\n\nChange-Id: I2be6d8abf4e3e4c6b9e8d635700930af432fe37a","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/1a808fb8dbf5a262a8eb611cc238dc6a0bb63137"},{"sha":"655d2c1b7643d55d53ada66125878916ad23f6d0","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: handle dirty segments inside refresh_sit_entry\n\nThis patch cleans up the refresh_sit_entry to handle locate_dirty_segments.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/655d2c1b7643d55d53ada66125878916ad23f6d0"},{"sha":"b759f5fe6cd17f3e73bb28828acffdee873b639a","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: fix to recover xattr node block\n\nIf a new xattr node page was allocated and its inode is fsynced, we should\nrecover the xattr node page during the roll-forward process after power-cut.\nBut, previously, f2fs didn't handle that case, resulting in kernel panic as\nfollows reported by Tom Li.\n\nBUG: unable to handle kernel paging request at ffffc9001c861a98\nIP: [<ffffffffa0295236>] check_index_in_prev_nodes+0x86/0x2d0 [f2fs]\nCall Trace:\n [<ffffffff815ece9b>] ? printk+0x48/0x4a\n [<ffffffffa029626a>] recover_fsync_data+0xdca/0xf50 [f2fs]\n [<ffffffffa02873ae>] f2fs_fill_super+0x92e/0x970 [f2fs]\n [<ffffffff8112c9f8>] mount_bdev+0x1b8/0x200\n [<ffffffffa0286a80>] ? f2fs_remount+0x130/0x130 [f2fs]\n [<ffffffffa0285e40>] f2fs_mount+0x10/0x20 [f2fs]\n [<ffffffff8112d4de>] mount_fs+0x3e/0x1b0\n [<ffffffff810ef4eb>] ? __alloc_percpu+0xb/0x10\n [<ffffffff8114761f>] vfs_kern_mount+0x6f/0x120\n [<ffffffff811497b9>] do_mount+0x259/0xa90\n [<ffffffff810ead1d>] ? memdup_user+0x3d/0x80\n [<ffffffff810eadb3>] ? strndup_user+0x53/0x70\n [<ffffffff8114a2c9>] SyS_mount+0x89/0xd0\n [<ffffffff815feae2>] system_call_fastpath+0x16/0x1b\n\nThis patch adds a recovery function of xattr node pages.\n\nReported-by: Tom Li <biergaizi@members.fsf.org>\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/b759f5fe6cd17f3e73bb28828acffdee873b639a"},{"sha":"080c46360b5074ad336b0fde94253e5a8aa66b0e","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: remove the ugly pointer conversion\n\nThis patch modifies the use of bi_private to remove pointer chasing for sbi.\nPreviously, we had a bi_private structure, but it needs memory allocation.\nSo this patch uses bi_private by the sbi pointer and adds a completion pointer\ninto the sbi.\nThis can achieve no memory allocation and nice use of the bi_private.\n\nChange-Id: I1546c1e7f991f8eebe9323d6930a5919d18773cb\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/080c46360b5074ad336b0fde94253e5a8aa66b0e"},{"sha":"c2ceb28230f774913d1b78e902ac91a663a74a02","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: fix the potential mismatch between dir's i_size and i_blocks\n\nThis is the erroneous scenario.\n\n                             i_size    on-disk i_size    i_blocks\n__f2fs_add_link()             4096           4096           2\n get_new_data_page            8192           4096           3\n -ENOSPC = init_inode_metadata\n checkpoint                     -            4096           3\n POR and reboot\n\n__f2fs_add_link()             4096           4096           3\n page = get_new_data_page (page->index = 1 by NEW_ADDR)\n add a dentry to the page successfully\n\nf2fs_rmdir()\n f2fs_empty_dir()             4096           4096           3\n f2fs_unlink() goes, since there is no valid dentry due to i_size = 4096.\n But, still there is one dentry in page->index = 1.\n\nSo this patch moves the code to write dir->i_size into on-disk i_size in order\nto sync dir's i_size, on-disk i_size, and its i_blocks.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/c2ceb28230f774913d1b78e902ac91a663a74a02"},{"sha":"26d12827da26a090ff3efd58bbbb4e731c2ede5a","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: clean up with a macro\n\nThis patch adds GET_BLKOFF_FROM_SEG0 to clean up some codes.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/26d12827da26a090ff3efd58bbbb4e731c2ede5a"},{"sha":"a47d1cc3df8f0b353a332af647528c6bcf95af5a","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: fix a build warning\n\nThis patch modifies flow a little bit to avoid the following build warnings.\n\nsrc/fs/f2fs/recovery.c: In function ‘check_index_in_prev_nodes’:\nsrc/fs/f2fs/recovery.c:288:51: warning: ‘sum.<U5390>.<U52f8>.ofs_in_node’ may\n\tbe used uninitialized in this function [-Wmaybe-uninitialized]\nsrc/fs/f2fs/recovery.c:260:23: warning: ‘sum.nid’ may be used uninitialized\n\tin this function [-Wmaybe-uninitialized]\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/a47d1cc3df8f0b353a332af647528c6bcf95af5a"},{"sha":"5409370b1191862fd0e4deb2eac29650fbc52185","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: fix to truncate dentry pages in the error case\n\nWhen a new directory is allocated, if an error is occurred, we should truncate\npreallocated dentry pages too.\n\nThis bug was reported by Andrey Tsyvarev after a while as follows.\n\nmkdir()->\n f2fs_add_link()->\n  init_inode_metadata()->\n    f2fs_init_acl()->\n      f2fs_get_acl()->\n        f2fs_getxattr()->\n          read_all_xattrs() fails.\n\nAlso there was a BUG_ON triggered after the fault in\nmkdir()->\n f2fs_add_link()->\n   init_inode_metadata()->\n    remove_inode_page() ->\n      f2fs_bug_on(inode->i_blocks != 0 && inode->i_blocks != 1);\n\nBut, previous patch wasn't perfect to resolve that bug, so the following bug\nreport was also submitted.\n\nkernel BUG at fs/f2fs/inode.c:274!\nCall Trace:\n [<ffffffff811fde03>] evict+0xa3/0x1a0\n [<ffffffff811fe615>] iput+0xf5/0x180\n [<ffffffffa01c7f63>] f2fs_mkdir+0xf3/0x150 [f2fs]\n [<ffffffff811f2a77>] vfs_mkdir+0xb7/0x160\n [<ffffffff811f36bf>] SyS_mkdir+0x5f/0xc0\n [<ffffffff81680769>] system_call_fastpath+0x16/0x1b\n\nFinally, this patch resolves all the issues like below.\n\nIf an error is occurred after make_empty_dir(),\n 1. truncate_inode_pages()\n   The make_bad_inode() prior to iput() will change i_mode to S_IFREG, which\n   means that f2fs will not decrement fi->dirty_dents during f2fs_evict_inode.\n   But, by calling it here, we can do that.\n\n 2. truncate_blocks()\n   Preallocated dentry pages are trucated here to sync i_blocks.\n\n 3. remove_dirty_dir_inode()\n   Remove this directory inode from the list.\n\nReported-and-Tested-by: Andrey Tsyvarev <tsyvarev@ispras.ru>\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/5409370b1191862fd0e4deb2eac29650fbc52185"},{"sha":"4c57cbeb27945dd3ed056e233b0eefde955a6c41","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: fix f2fs_write_meta_page at no checkpoint status\n\nIf f2fs entered errorneous checkpoint status, it should skip writing meta\npages instead of redirtying the pages out.\nOtherwise, it cannot unmount the partition even though f2fs is under read-only\nstatus.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/4c57cbeb27945dd3ed056e233b0eefde955a6c41"},{"sha":"9694e66d185f9f61535928bfa238fd446ee0ede1","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: clean up redundant function call\n\nThis patch integrates inode_[inc|dec]_dirty_dents with inc_page_count to remove\nredundant calls.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/9694e66d185f9f61535928bfa238fd446ee0ede1"},{"sha":"e492f02daaa64d8153c04a7d2e142e08fd663905","author":{"email":"0cc5db7488e13b393f245aa6263acec5e92fdcc5@samsung.com","name":"Chao Yu"},"message":"f2fs: use inode mutex to keep atomicity of f2fs_falloc\n\nPreviously without protection of inode mutex, f2fs_falloc and other data\ncorrelated operations will interfere with each other.\nSo let's use inode mutex to keep atomicity of f2fs_falloc.\n\nSigned-off-by: Chao Yu <chao2.yu@samsung.com>\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/e492f02daaa64d8153c04a7d2e142e08fd663905"},{"sha":"624b14f8bac9a8d2dde3025d992cef0a80ce1336","author":{"email":"0cc5db7488e13b393f245aa6263acec5e92fdcc5@samsung.com","name":"Chao Yu"},"message":"f2fs: introduce ra_meta_pages to readahead CP/NAT/SIT pages\n\nThis patch help us to cleanup the readahead code by merging ra_{sit,nat}_pages\nfunction into ra_meta_pages.\nAdditionally the new function is used to readahead cp block in\nrecover_orphan_inodes.\n\nChange log from v1:\n o fix a deadloop bug pointed by Jaegeuk Kim.\n\nSigned-off-by: Chao Yu <chao2.yu@samsung.com>\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/624b14f8bac9a8d2dde3025d992cef0a80ce1336"},{"sha":"8b83cd3e9568740cdae0bdb05745b8daa60f0018","author":{"email":"f10da886ecf5f6d400f766170992d382feccd416@samsung.com","name":"Changman Lee"},"message":"f2fs: show counts of checkpoint in status\n\nThis patch shows the counts of checkpoint in f2fs' status.\n\nSigned-off-by: Changman Lee <cm224.lee@samsung.com>\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/8b83cd3e9568740cdae0bdb05745b8daa60f0018"},{"sha":"8fa144bdb179aa3a7a75cc4b24db3b2c14031c84","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: fix the calculation of max_nids\n\nTotal nids that f2fs can use should not include 0, nid for node inode, and nid\nfor meta inode.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/8fa144bdb179aa3a7a75cc4b24db3b2c14031c84"},{"sha":"78ae57e3170b14549234d6409eea2af43c3c9c5f","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: fix not to write data pages on the page reclaiming path\n\nEven if f2fs_write_data_page is called by the page reclaiming path, we should\nnot write the page to provide enough free segments for the worst case scenario.\nOtherwise, f2fs can face with no free segment while gc is conducted, resulting\nin:\n\n ------------[ cut here ]------------\n kernel BUG at /home/zeus/f2fs_test/src/fs/f2fs/segment.c:565!\n RIP: 0010:[<ffffffffa02c3b11>]  [<ffffffffa02c3b11>] new_curseg+0x331/0x340 [f2fs]\n Call Trace:\n  allocate_segment_by_default+0x204/0x280 [f2fs]\n  allocate_data_block+0x108/0x210 [f2fs]\n  write_data_page+0x8a/0xc0 [f2fs]\n  do_write_data_page+0xe1/0x2a0 [f2fs]\n  move_data_page+0x8a/0xf0 [f2fs]\n  f2fs_gc+0x446/0x970 [f2fs]\n  f2fs_balance_fs+0xb6/0xd0 [f2fs]\n  f2fs_write_begin+0x50/0x350 [f2fs]\n  ? unlock_page+0x27/0x30\n  ? unlock_page+0x27/0x30\n  generic_file_buffered_write+0x10a/0x280\n  ? file_update_time+0xa3/0xf0\n  __generic_file_aio_write+0x1c8/0x3d0\n  ? generic_file_aio_write+0x52/0xb0\n  ? generic_file_aio_write+0x52/0xb0\n  generic_file_aio_write+0x65/0xb0\n  do_sync_write+0x5a/0x90\n  vfs_write+0xc5/0x1f0\n  SyS_write+0x55/0xa0\n  system_call_fastpath+0x16/0x1b\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/78ae57e3170b14549234d6409eea2af43c3c9c5f"},{"sha":"0726410bd28fd08b3a1f86162f33b1df8fadca3c","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: fix to do build_stat prior to the recovery procedure\n\nAt the end of the recovery procedure, write_checkpoint is called and updates\nthe cp count which is managed by f2fs stat.\nBut, previously build_stat() is called after the recovery procedure, which\nresults in:\n\nBUG: unable to handle kernel NULL pointer dereference at 000000000000012c\nIP: [<ffffffffa03b1030>] write_checkpoint+0x720/0xbc0 [f2fs]\nCall Trace:\n [<ffffffff810a6b44>] ? mark_held_locks+0x74/0x140\n [<ffffffff8109a3e0>] ? __init_waitqueue_head+0x60/0x60\n [<ffffffffa03bf036>] recover_fsync_data+0x656/0xf20 [f2fs]\n [<ffffffff812ee3eb>] ? security_d_instantiate+0x1b/0x30\n [<ffffffffa03aeb4d>] f2fs_fill_super+0x94d/0xa00 [f2fs]\n [<ffffffff811a9825>] mount_bdev+0x1a5/0x1f0\n [<ffffffff8114915e>] ? __get_free_pages+0xe/0x40\n [<ffffffffa03ae200>] ? f2fs_remount+0x130/0x130 [f2fs]\n [<ffffffffa03aa575>] f2fs_mount+0x15/0x20 [f2fs]\n [<ffffffff811aa713>] mount_fs+0x43/0x1b0\n [<ffffffff811c7124>] vfs_kern_mount+0x74/0x160\n [<ffffffff811c5cb1>] ? __get_fs_type+0x51/0x60\n [<ffffffff811c9727>] do_mount+0x237/0xb50\n [<ffffffff811c936a>] ? copy_mount_options+0x3a/0x170\n\nSo, this patche changes the order of recovery_fsync_data() and\nf2fs_build_stats().\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/0726410bd28fd08b3a1f86162f33b1df8fadca3c"},{"sha":"c5ed3b7c5d2e6c69e04e5b16dd31a70d4075fdee","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: fix to mark the checkpointed nat entry correctly\n\nThe nat cache entry maintains a status whether it is checkpointed or not.\nSo, if a new cache entry is loaded from the last checkpoint,\nnat_entry->checkpointed should be true.\nIf the cache entry is modified as being dirty, nat_entry->checkpoint should\nbe false.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/c5ed3b7c5d2e6c69e04e5b16dd31a70d4075fdee"},{"sha":"aa9c8b0dabb58d03cf2d2257533122f3e6de4b16","author":{"email":"9eae2d327ddc4c2ff66f290d0aa6288f14fc5928@cn.fujitsu.com","name":"Gu Zheng"},"message":"f2fs: introduce help macro on_build_free_nids()\n\nIntroduce help macro on_build_free_nids() which just uses build_lock\nto judge whether the building free nid is going, so that we can remove\nthe on_build_free_nids field from f2fs_sb_info.\n\nSigned-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com>\n[Jaegeuk Kim: remove an unnecessary white line removal]\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/aa9c8b0dabb58d03cf2d2257533122f3e6de4b16"},{"sha":"8409a8a112b1a72a40e21ef40da288d3cd1b3cca","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: introduce a radix_tree for the free_nid list\n\nThis patch introduces a radix tree for the list of free_nids, which enhances\nthe performance on free nid management.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/8409a8a112b1a72a40e21ef40da288d3cd1b3cca"},{"sha":"0cf300aad3a8f6fc5a0fbe7b403e650cd25bc540","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: implement a lock-free stat_show\n\nThe stat_show is just to show the current status of f2fs.\nSo, we can remove all the there-in locks.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/flintman/android_kernel_htc_msm8960/commits/0cf300aad3a8f6fc5a0fbe7b403e650cd25bc540"}]}