{"push_id":580501796,"size":75,"distinct_size":4,"ref":"refs/heads/fix/waitqueue-barriers","head":"09f9fec3e6beacae87997193962d7c1d636f2074","before":"10ae35b351f3cc3767fc49a2e7932e475953ab00","commits":[{"sha":"d3e46fea1b1e8ba97a8c9dd8f54b97d086cd25aa","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: sink blocksize parameter to readahead_tree_block\n\nAll callers pass nodesize.\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/d3e46fea1b1e8ba97a8c9dd8f54b97d086cd25aa"},{"sha":"b6ae40ec76dc7589d9f77bd281515be3ad58c533","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: remove blocksize from reada_extent\n\nReplace with global nodesize instead.\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/b6ae40ec76dc7589d9f77bd281515be3ad58c533"},{"sha":"c0dcaa4d7b66b788b315c418bda3cca75c5938dc","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: sink blocksize parameter to reada_tree_block_flagged\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/c0dcaa4d7b66b788b315c418bda3cca75c5938dc"},{"sha":"fe864576de7fb940b5bd1f8ab8908a08a3416ca0","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: sink blocksize parameter to btrfs_init_new_buffer\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/fe864576de7fb940b5bd1f8ab8908a08a3416ca0"},{"sha":"a83fffb75d09cd3d44167b7fb9c1ab9e2269445f","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: sink blocksize parameter to btrfs_find_create_tree_block\n\nFinally it's clear that the requested blocksize is always equal to\nnodesize, with one exception, the superblock.\n\nSuperblock has fixed size regardless of the metadata block size, but\nuses the same helpers to initialize sys array/chunk tree and to work\nwith the chunk items. So it pretends to be an extent_buffer for a\nmoment, btrfs_read_sys_array is full of special cases, we're adding one\nmore.\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/a83fffb75d09cd3d44167b7fb9c1ab9e2269445f"},{"sha":"7476dfdaade5b373db4679555706546bd5b4bd6c","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: sink blocksize parameter to tree_block_processed\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/7476dfdaade5b373db4679555706546bd5b4bd6c"},{"sha":"23d79d81b13431756fee428acde49c9b770da132","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: use GFP_NOFS in __alloc_extent_buffer directly\n\nSame mask from all callers.\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/23d79d81b13431756fee428acde49c9b770da132"},{"sha":"3f556f7853ec4845a7c219d026cbcdf4cfa8cea7","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: unify extent buffer allocation api\n\nMake the extent buffer allocation interface consistent.  Cloned eb will\nset a valid fs_info.  For dummy eb, we can drop the length parameter and\nset it from fs_info.\n\nThe built-in sanity checks may pass a NULL fs_info that's queried for\nnodesize, but we know it's 4096.\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/3f556f7853ec4845a7c219d026cbcdf4cfa8cea7"},{"sha":"ce3e69847e3ec79a38421bfd3d6f554d5e481231","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: sink parameter len to alloc_extent_buffer\n\nBecause we're using globally known nodesize. Do the same for the sanity\ntest function variant.\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/ce3e69847e3ec79a38421bfd3d6f554d5e481231"},{"sha":"381cf6587f8a8a8e981bc0c1aaaa8859b51dc756","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: fix leak of path in btrfs_find_item\n\nIf btrfs_find_item is called with NULL path it allocates one locally but\ndoes not free it. Affected paths are inserting an orphan item for a file\nand for a subvol root.\n\nMove the path allocation to the callers.\n\nCC: <stable@vger.kernel.org> # 3.14+\nFixes: 3f870c289900 (\"btrfs: expand btrfs_find_item() to include find_orphan_item functionality\")\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/381cf6587f8a8a8e981bc0c1aaaa8859b51dc756"},{"sha":"14692cc150d3ce10ea8766ccb2a8f483b77b49f0","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: cleanup, remove inode_item_info helper\n\nIt's only a simple wrapper around btrfs_find_item, the locally defined\nkey is not used.\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/14692cc150d3ce10ea8766ccb2a8f483b77b49f0"},{"sha":"c234a24de91837db6f00aeebe28e3daddc53c1b7","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: cleanup, remove inode_ref_info helper\n\nA simple wrapper around btrfs_find_item.\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/c234a24de91837db6f00aeebe28e3daddc53c1b7"},{"sha":"9c4f61f01d269815bb7c37be3ede59c5587747c6","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: simplify insert_orphan_item\n\nWe can search and add the orphan item in one go,\nbtrfs_insert_orphan_item will find out if the item already exists.\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/9c4f61f01d269815bb7c37be3ede59c5587747c6"},{"sha":"1d4c08e0a60be356134d0c466744d0d4e16ebab0","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: expand btrfs_find_item if found_key is NULL\n\nIf the found_key is NULL, then btrfs_find_item becomes a verbose wrapper\nfor simple btrfs_search_slot.\n\nAfter we've removed all such callers, passing a NULL key is not valid\nanymore.\n\nSigned-off-by: David Sterba <dsterba@suse.cz>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/1d4c08e0a60be356134d0c466744d0d4e16ebab0"},{"sha":"e7070be198b34c26f39bd9010a29ce6462dc4f3e","author":{"email":"631dfb3d07694fdcf26abc7aac2c6c2b641f8bde@fb.com","name":"Josef Bacik"},"message":"Btrfs: change how we track dirty roots\n\nI've been overloading root->dirty_list to keep track of dirty roots and which\nroots need to have their commit roots switched at transaction commit time.  This\ncould cause us to lose an update to the root which could corrupt the file\nsystem.  To fix this use a state bit to know if the root is dirty, and if it\nisn't set we go ahead and move the root to the dirty list.  This way if we\nre-dirty the root after adding it to the switch_commit list we make sure to\nupdate it.  This also makes it so that the extent root is always the last root\non the dirty list to try and keep the amount of churn down at this point in the\ncommit.  Thanks,\n\nSigned-off-by: Josef Bacik <jbacik@fb.com>\nSigned-off-by: Chris Mason <clm@fb.com>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/e7070be198b34c26f39bd9010a29ce6462dc4f3e"},{"sha":"ce93ec548cfa02f9cd6b70d546d5f36f4d160f57","author":{"email":"631dfb3d07694fdcf26abc7aac2c6c2b641f8bde@fb.com","name":"Josef Bacik"},"message":"Btrfs: track dirty block groups on their own list\n\nCurrently any time we try to update the block groups on disk we will walk _all_\nblock groups and check for the ->dirty flag to see if it is set.  This function\ncan get called several times during a commit.  So if you have several terabytes\nof data you will be a very sad panda as we will loop through _all_ of the block\ngroups several times, which makes the commit take a while which slows down the\nrest of the file system operations.\n\nThis patch introduces a dirty list for the block groups that we get added to\nwhen we dirty the block group for the first time.  Then we simply update any\nblock groups that have been dirtied since the last time we called\nbtrfs_write_dirty_block_groups.  This allows us to clean up how we write the\nfree space cache out so it is much cleaner.  Thanks,\n\nSigned-off-by: Josef Bacik <jbacik@fb.com>\nSigned-off-by: Chris Mason <clm@fb.com>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/ce93ec548cfa02f9cd6b70d546d5f36f4d160f57"},{"sha":"d3541834884f042aaaab1d6c0610cdc3488028e4","author":{"email":"e2e8c5702d8ed5f565988a1cf5bb35c9ce199e5e@fb.com","name":"Chris Mason"},"message":"Merge branch 'fix/find-item-path-leak' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/d3541834884f042aaaab1d6c0610cdc3488028e4"},{"sha":"57bbddd7fbf468336940d18a4c68a8678163acb0","author":{"email":"e2e8c5702d8ed5f565988a1cf5bb35c9ce199e5e@fb.com","name":"Chris Mason"},"message":"Merge branch 'cleanup/blocksize-diet-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/57bbddd7fbf468336940d18a4c68a8678163acb0"},{"sha":"a8df6fe666f9a3a7c08df70f94351f967462dd95","author":{"email":"e0fcd583df77ec6c08e6d1257619cc1216ddc994@suse.com","name":"Filipe Manana"},"message":"Btrfs: fix setup_leaf_for_split() to avoid leaf corruption\n\nWe were incorrectly detecting when the target key didn't exist anymore\nafter releasing the path and re-searching the tree. This could make\nus split or duplicate (btrfs_split_item() and btrfs_duplicate_item()\nare its only callers at the moment) an item when we should not.\n\nFor the case of duplicating an item, we currently only duplicate\nchecksum items (csum tree) and file extent items (fs/subvol trees).\nFor the checksum items we end up overriding the item completely,\nbut for file extent items we update only some of their fields in\nthe copy (done in __btrfs_drop_extents), which means we can end up\nhaving a logical corruption for some values.\n\nAlso for the case where we duplicate a file extent item it will make\nus produce a leaf with a wrong key order, as btrfs_duplicate_item()\nadvances us to the next slot and then its caller sets a smaller key\non the new item at that slot (like in __btrfs_drop_extents() e.g.).\nAlternatively if the tree search in setup_leaf_for_split() leaves\nwith path->slots[0] == btrfs_header_nritems(path->nodes[0]), we end\nup accessing beyond the leaf's end (when we check if the item's size\nhas changed) and make our caller insert an item at the invalid slot\nbtrfs_header_nritems(path->nodes[0]) + 1, causing an invalid memory\naccess if the leaf is full or nearly full.\n\nThis issue has been present since the introduction of this function\nin 2009:\n\n    Btrfs: Add btrfs_duplicate_item\n    commit ad48fd754676bfae4139be1a897b1ea58f9aaf21\n\nSigned-off-by: Filipe Manana <fdmanana@suse.com>\nSigned-off-by: Chris Mason <clm@fb.com>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/a8df6fe666f9a3a7c08df70f94351f967462dd95"},{"sha":"68b663d13ceba777ee6e250154f0e3ab28bd1181","author":{"email":"a2ce9d316ca04d17b520237d2846a218b8284e52@suse.cz","name":"David Sterba"},"message":"btrfs: update message levels for errors\n\nSeveral messages that point to some internal problem, level INFO is\nwrong here.\n\nSigned-off-by: David Sterba <dsterba@suse.cz>\nSigned-off-by: Chris Mason <clm@fb.com>","distinct":false,"url":"https://api.github.com/repos/kdave/btrfs-devel/commits/68b663d13ceba777ee6e250154f0e3ab28bd1181"}]}