{"push_id":814535997,"size":890,"distinct_size":890,"ref":"refs/heads/master","head":"6edff28f327be7201b2c46cdb257456151fa0ad4","before":"231401e8ecaa83f9a87a76967bcdeac4b7751317","commits":[{"sha":"e8a3309ff78e2be5f6930a5bf6c98ff7a8787706","author":{"email":"7fbde1e90b180b95a3505c70efac2fec3c2a1323@gmail.com","name":"Matthew-333"},"message":"Revert \"f2fs: bring up to date with Jaegeuk's branch\"\n\nThis reverts commit 0bb0f9e33577aab7761a0c499adb4194c0c9f9b2.","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/e8a3309ff78e2be5f6930a5bf6c98ff7a8787706"},{"sha":"1fbbcc352f5919186be87b31fd37a1d32ec98e57","author":{"email":"7fbde1e90b180b95a3505c70efac2fec3c2a1323@gmail.com","name":"Matthew-333"},"message":"Revert \"vfs: Rename end_writeback() to clear_inode()\"\n\nThis reverts commit a023d69fae253cd6ba8170e0d1a731d67cda8b78.","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/1fbbcc352f5919186be87b31fd37a1d32ec98e57"},{"sha":"0f61341c288718a5796d6add4955a6d4c70c0293","author":{"email":"7fbde1e90b180b95a3505c70efac2fec3c2a1323@gmail.com","name":"Matthew-333"},"message":"Revert \"fs: Add support for f2fs\"\n\nThis reverts commit 50fcc33c883c85e589e58bb1a51f3078b5880540.","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/0f61341c288718a5796d6add4955a6d4c70c0293"},{"sha":"768e419aa927c5e5190ab86b664e29dcae1ce90a","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add superblock and major in-memory structure\n\nThis adds the following major in-memory structures in f2fs.\n\n- f2fs_sb_info:\n  contains f2fs-specific information, two special inode pointers for node and\n  meta address spaces, and orphan inode management.\n\n- f2fs_inode_info:\n  contains vfs_inode and other fs-specific information.\n\n- f2fs_nm_info:\n  contains node manager information such as NAT entry cache, free nid list,\n  and NAT page management.\n\n- f2fs_node_info:\n  represents a node as node id, inode number, block address, and its version.\n\n- f2fs_sm_info:\n  contains segment manager information such as SIT entry cache, free segment\n  map, current active logs, dirty segment management, and segment utilization.\n  The specific structures are sit_info, free_segmap_info, dirty_seglist_info,\n  curseg_info.\n\nIn addition, add F2FS_SUPER_MAGIC in magic.h.\n\nSigned-off-by: Chul Lee <chur.lee@samsung.com>\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/768e419aa927c5e5190ab86b664e29dcae1ce90a"},{"sha":"03a27a72159fdcee811e1e124465dac4a833331a","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add super block operations\n\nThis adds the implementation of superblock operations for f2fs, which includes\n- init_f2fs_fs/exit_f2fs_fs\n- f2fs_mount\n- super_operations of f2fs\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/03a27a72159fdcee811e1e124465dac4a833331a"},{"sha":"7593927d1ae94d0b37001136a6bc28ef67e2a340","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add checkpoint operations\n\nThis adds functions required by the checkpoint operations.\n\nBasically, f2fs adopts a roll-back model with checkpoint blocks written in the\nCP area. The checkpoint procedure includes as follows.\n\n- write_checkpoint()\n1. block_operations() freezes VFS calls.\n2. submit cached bios.\n3. flush_nat_entries() writes NAT pages updated by dirty NAT entries.\n4. flush_sit_entries() writes SIT pages updated by dirty SIT entries.\n5. do_checkpoint() writes,\n  - checkpoint block (#0)\n  - orphan inode blocks\n  - summary blocks made by active logs\n  - checkpoint block (copy of #0)\n6. unblock_opeations()\n\nIn order to provide an address space for meta pages, f2fs_sb_info has a special\ninode, namely meta_inode. This patch also adds the address space operations for\nmeta_inode.\n\nSigned-off-by: Chul Lee <chur.lee@samsung.com>\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/7593927d1ae94d0b37001136a6bc28ef67e2a340"},{"sha":"f974c4ca945caa459a123131fd43c080395a1e2c","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add node operations\n\nThis adds specific functions to manage NAT pages, a cache for NAT entries, free\nnids, direct/indirect node blocks for indexing data, and address space for node\npages.\n\n- The key information of an NAT entry consists of a node id and a block address.\n\n- An NAT page is composed of block addresses covered by a certain range of NAT\n  entries, which is maintained by the address space of meta_inode.\n\n- A radix tree structure is used to cache NAT entries. The index for the tree\n  is a node id.\n\n- When there is no free nid, F2FS should scan NAT entries to find new one. In\n  order to avoid scanning frequently, F2FS manages a list containing a number of\n  free nids in memory. Only when free nids in the list are exhausted, scanning\n  process, build_free_nids(), is triggered.\n\n- F2FS has direct and indirect node blocks for indexing data. This patch adds\n  fuctions related to the node block management such as getting, allocating, and\n  truncating node blocks to index data.\n\n- In order to cache node blocks in memory, F2FS has a node_inode with an address\n  space for node pages. This patch also adds the address space operations for\n  node_inode.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/f974c4ca945caa459a123131fd43c080395a1e2c"},{"sha":"4cb5b99bdb550cbaafcc333443c0e706c98b3991","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add segment operations\n\nThis adds specific functions not only to manage dirty/free segments, SIT pages,\na cache for SIT entries, and summary entries, but also to allocate free blocks\nand write three types of pages: data, node, and meta.\n\n- F2FS maintains three types of bitmaps in memory, which indicate free, prefree,\n  and dirty segments respectively.\n\n- The key information of an SIT entry consists of a segment number, the number\n  of valid blocks in the segment, a bitmap to identify there-in valid or invalid\n  blocks.\n\n- An SIT page is composed of a certain range of SIT entries, which is maintained\n  by the address space of meta_inode.\n\n- To cache SIT entries, a simple array is used. The index for the array is the\n  segment number.\n\n- A summary entry for data contains the parent node information. A summary entry\n  for node contains its node offset from the inode.\n\n- F2FS manages information about six active logs and those summary entries in\n  memory. Whenever one of them is changed, its summary entries are flushed to\n  its SIT page maintained by the address space of meta_inode.\n\n- This patch adds a default block allocation function which supports heap-based\n  allocation policy.\n\n- This patch adds core functions to write data, node, and meta pages. Since LFS\n  basically produces a series of sequential writes, F2FS merges sequential bios\n  with a single one as much as possible to reduce the IO scheduling overhead.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/4cb5b99bdb550cbaafcc333443c0e706c98b3991"},{"sha":"1c4ba1e45464b6c15621ff5b401f14b5d1ca88b6","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add file operations\n\nThis adds memory operations and file/file_inode operations.\n\n- F2FS supports fallocate(), mmap(), fsync(), and basic ioctl().\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/1c4ba1e45464b6c15621ff5b401f14b5d1ca88b6"},{"sha":"e8420d5d3fbafc5fe10fee25d8fa6b310495f633","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add address space operations for data\n\nThis adds address space operations for data.\n\n- F2FS supports readpages(), writepages(), and direct_IO().\n\n- Because of out-of-place writes, f2fs_direct_IO() does not write data in place.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/e8420d5d3fbafc5fe10fee25d8fa6b310495f633"},{"sha":"ac328e0443a34368acae2cba73f522f68e95bee5","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add core inode operations\n\nThis adds core functions to get, read, write, and evict an inode.\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/Matthew-333/BlueMoon-N5/commits/ac328e0443a34368acae2cba73f522f68e95bee5"},{"sha":"36aa9bd11479139a36ec543c5fae28107db77376","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add inode operations for special inodes\n\nThis adds inode operations for directory, symlink, and special inodes.\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/Matthew-333/BlueMoon-N5/commits/36aa9bd11479139a36ec543c5fae28107db77376"},{"sha":"ac429352e8b54021cd97b8a5565ec083317aec54","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add core directory operations\n\nthis adds core functions to find, add, delete, and link dentries.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/ac429352e8b54021cd97b8a5565ec083317aec54"},{"sha":"70a13a8b9ae7f624d3c631e152b945bdd2dd37ec","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add xattr and acl functionalities\n\nThis implements xattr and acl functionalities.\n\n- F2FS uses a node page to contain use extended attributes.\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/Matthew-333/BlueMoon-N5/commits/70a13a8b9ae7f624d3c631e152b945bdd2dd37ec"},{"sha":"61bf576b03f4476ac8dee2014dfb5358c22cd76d","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add garbage collection functions\n\nThis adds on-demand and background cleaning functions.\n\n- The basic background cleaning policy is trying to do cleaning jobs as much as\n  possible whenever the system is idle. Once the background cleaning is done,\n  the cleaner sleeps an amount of time not to interfere with VFS calls. The time\n  is dynamically adjusted according to the status of whole segments, which is\n  decreased when the following conditions are satisfied.\n\n  . GC is not conducted currently, and\n  . IO subsystem is idle by checking the number of requets in bdev's request\n     list, and\n  . There are enough dirty segments.\n\n  Otherwise, the time is increased incrementally until to the maximum time.\n  Note that, min and max times are 10 secs and 30 secs by default.\n\n- F2FS adopts a default victim selection policy where background cleaning uses\n  a cost-benefit algorithm, while on-demand cleaning uses a greedy algorithm.\n\n- The method of moving data during the cleaning is slightly different between\n  background and on-demand cleaning schemes. In the case of background cleaning,\n  F2FS loads the data, and marks them as dirty. Then, F2FS expects that the data\n  will be moved by flusher or VM. In the case of on-demand cleaning, F2FS should\n  move the data right away.\n\n- In order to identify valid blocks in a victim segment, F2FS scans the bitmap\n  of the segment managed as an SIT entry.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/61bf576b03f4476ac8dee2014dfb5358c22cd76d"},{"sha":"f1569c8baf7a08c09dc5f424578fe26cfdc9b39e","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add recovery routines for roll-forward\n\nThis adds roll-forward routines to recover fsynced data.\n\n- F2FS uses basically roll-back model with checkpointing.\n\n- In order to implement fsync(), there are two approaches as follows.\n\n1. A roll-back model with checkpointing at every fsync()\n : This is a naive method, but suffers from very low performance.\n\n2. A roll-forward model\n : F2FS adopts this model where all the fsynced data should be recovered, which\n   were written after checkpointing was done. In order to figure out the data,\n   F2FS keeps a \"fsync\" mark in direct node blocks. In addition, F2FS remains\n   the location of next node block in each direct node block for reconstructing\n   the chain of node blocks during the recovery.\n\n- In order to enhance the performance, F2FS keeps a \"dentry\" mark also in direct\n  node blocks. If this is set during the recovery, F2FS replays adding a dentry.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/f1569c8baf7a08c09dc5f424578fe26cfdc9b39e"},{"sha":"2239d9a6cb0f578b1fd9712dd14b69003fa7dda5","author":{"email":"4645f7897fd33786a2ee1264d590b3c400559d85@linuxfoundation.org","name":"Greg Kroah-Hartman"},"message":"f2fs: move proc files to debugfs\n\nThis moves all of the f2fs debugging files into debugfs. The files are\nlocated in /sys/kernel/debug/f2fs/\n\nNote, I think we are generating all of the same information in each of\nthe files for every unique f2fs filesystem in the machine.  This copies\nthe functionality that was present in the proc files, but this should be\nfixed up in the future.\n\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n[jaegeuk.kim@samsung.com: merged 3 debugfs entries into a *status* entry]\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/2239d9a6cb0f578b1fd9712dd14b69003fa7dda5"},{"sha":"85679657b6a170696e49c1c19a50a7003ea14c30","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: update Kconfig and Makefile\n\nThis adds Makefile and Kconfig for f2fs, and updates Makefile and Kconfig files\nin the fs directory.\n\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/85679657b6a170696e49c1c19a50a7003ea14c30"},{"sha":"33cbc586f418a6dd6917a9c1c894df2b86206ee2","author":{"email":"1c3b1584a6008857f36c03c58f657c0fc16fc09e@linaro.org","name":"Sachin Kamat"},"message":"f2fs: remove unneeded version.h header file from f2fs.h\n\nIncluding <linux/version.h> is not necessary.\n\nSigned-off-by: Sachin Kamat <sachin.kamat@linaro.org>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/33cbc586f418a6dd6917a9c1c894df2b86206ee2"},{"sha":"14c0c51e364677da018e7ac316dbc22295cc1e32","author":{"email":"20424effba9d4aeeb410130c5f23aa328fa29e09@samsung.com","name":"Jaegeuk Kim"},"message":"f2fs: add on-disk layout\n\nThis adds a header file describing the on-disk layout of f2fs.\n\nSigned-off-by: Changman Lee <cm224.lee@samsung.com>\nSigned-off-by: Chul Lee <chur.lee@samsung.com>\nSigned-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>","distinct":true,"url":"https://api.github.com/repos/Matthew-333/BlueMoon-N5/commits/14c0c51e364677da018e7ac316dbc22295cc1e32"}]}