{"push_id":1456174271,"size":166,"distinct_size":166,"ref":"refs/heads/master","head":"5084fdf081739b7455c7aeecda6d7b83ec59c85f","before":"cdb98c2698b4af287925abcba4d77d92af82a0c3","commits":[{"sha":"dbef1c05341b1eb4912154cc32bc1a8b64ac0f59","author":{"name":"Stephen Hemminger","email":"5bfd6f4d5597453bc08688e3129fd2e4fff3505f@networkplumber.org"},"message":"dlm: make genl_ops const\n\nThis table contains function points and should be const.\n\nSigned-off-by: Stephen Hemminger <stephen@networkplumber.org>\nSigned-off-by: David Teigland <teigland@redhat.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/dbef1c05341b1eb4912154cc32bc1a8b64ac0f59"},{"sha":"7963b8a59845eabafa0e8ff330a2e0884f0279a9","author":{"name":"Paul Gortmaker","email":"264b51cb15b0a4c1eb7ed3e5fe7b22f5d4e19c36@windriver.com"},"message":"dlm: audit and remove any unnecessary uses of module.h\n\nHistorically a lot of these existed because we did not have\na distinction between what was modular code and what was providing\nsupport to modules via EXPORT_SYMBOL and friends.  That changed\nwhen we forked out support for the latter into the export.h file.\nThis means we should be able to reduce the usage of module.h\nin code that is obj-y Makefile or bool Kconfig.\n\nIn the case of some code where it is modular, we can extend that to\nalso include files that are building basic support functionality but\nnot related to loading or registering the final module; such files\nalso have no need whatsoever for module.h\n\nThe advantage in removing such instances is that module.h itself\nsources about 15 other headers; adding significantly to what we feed\ncpp, and it can obscure what headers we are effectively using.\n\nSince module.h might have been the implicit source for init.h\n(for __init) and for export.h (for EXPORT_SYMBOL) we consider each\ninstance for the presence of either and replace as needed.\n\nIn the dlm case, we remove module.h from a global header and only\nintroduce it in the files where it is explicitly required, since\nthere is nothing modular in dlm_internal.h itself.\n\nSigned-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>\nSigned-off-by: David Teigland <teigland@redhat.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/7963b8a59845eabafa0e8ff330a2e0884f0279a9"},{"sha":"3735b4b9f1c102dcaf70241225339bdea4447dc8","author":{"name":"Bob Peterson","email":"383124fe56d4ea7a7a422e1be815ee613909f204@redhat.com"},"message":"dlm: don't save callbacks after accept\n\nWhen DLM calls accept() on a socket, the comm code copies the sk\nafter we've saved its callbacks. Afterward, it calls add_sock which\nsaves the callbacks a second time. Since the error reporting function\nlowcomms_error_report calls the previous callback too, this results\nin a recursive call to itself. This patch adds a new parameter to\nfunction add_sock to tell whether to save the callbacks. Function\ntcp_accept_from_sock (and its sctp counterpart) then calls it with\nfalse to avoid the recursion.\n\nSigned-off-by: Bob Peterson <rpeterso@redhat.com>\nSigned-off-by: David Teigland <teigland@redhat.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/3735b4b9f1c102dcaf70241225339bdea4447dc8"},{"sha":"d2fee58a3bb15b2b8f1eaff14aa3432cf0f35d8c","author":{"name":"Bob Peterson","email":"383124fe56d4ea7a7a422e1be815ee613909f204@redhat.com"},"message":"dlm: remove lock_sock to avoid scheduling while atomic\n\nBefore this patch, functions save_callbacks and restore_callbacks\ncalled function lock_sock and release_sock to prevent other processes\nfrom messing with the struct sock while the callbacks were saved and\nrestored. However, function add_sock calls write_lock_bh prior to\ncalling it save_callbacks, which disables preempts. So the call to\nlock_sock would try to schedule when we can't schedule.\n\nSigned-off-by: Bob Peterson <rpeterso@redhat.com>\nSigned-off-by: David Teigland <teigland@redhat.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/d2fee58a3bb15b2b8f1eaff14aa3432cf0f35d8c"},{"sha":"aa9f1012858bc7f44368f1e4453c989d873b0860","author":{"name":"Bob Peterson","email":"383124fe56d4ea7a7a422e1be815ee613909f204@redhat.com"},"message":"dlm: don't specify WQ_UNBOUND for the ast callback workqueue\n\nThis patch removes the WQ_UNBOUND flag (which implies WQ_HIGHPRI)\nfrom the DLM's ast work queue, in favor of just WQ_HIGHPRI.\nThis has been shown to cause a 19 percent performance increase for\nsimultaneous inode creates on GFS2 with fs_mark.\n\nSigned-off-by: Bob Peterson <rpeterso@redhat.com>\nSigned-off-by: David Teigland <teigland@redhat.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/aa9f1012858bc7f44368f1e4453c989d873b0860"},{"sha":"26c1ec2fe410ba861f15ebbfc9f44f907a41b6ff","author":{"name":"Wei Yongjun","email":"cea121043064f325ec96cf17db61a214210a3ed7@huawei.com"},"message":"dlm: fix error return code in sctp_accept_from_sock()\n\nFix to return a negative error code from the error handling\ncase instead of 0, as done elsewhere in this function.\n\nSigned-off-by: Wei Yongjun <weiyongjun1@huawei.com>\nSigned-off-by: David Teigland <teigland@redhat.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/26c1ec2fe410ba861f15ebbfc9f44f907a41b6ff"},{"sha":"547edce3ba234a5161c6e1f4389f4a0d2f8451aa","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"ext4: tell DAX the size of allocation holes\n\nWhen DAX calls _ext4_get_block() and the file offset points to a hole we\ncurrently don't set bh->b_size.  This is current worked around via\nbuffer_size_valid() in fs/dax.c.\n\n_ext4_get_block() has the hole size information from ext4_map_blocks(), so\npopulate bh->b_size so we can remove buffer_size_valid() in a later patch.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/547edce3ba234a5161c6e1f4389f4a0d2f8451aa"},{"sha":"fa0d3fce7ceff0aae62f3e19678713bc5a7f3377","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: remove buffer_size_valid()\n\nNow that ext4 properly sets bh.b_size when we call get_block() for a hole,\nrely on that value and remove the buffer_size_valid() sanity check.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Jan Kara <jack@suse.cz>\nReviewed-by: Christoph Hellwig <hch@lst.de>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/fa0d3fce7ceff0aae62f3e19678713bc5a7f3377"},{"sha":"03e0990fc88f82c85abeaf90aabe1921e4e0b72f","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"ext2: remove support for DAX PMD faults\n\nDAX PMD support was added via the following commit:\n\ncommit e7b1ea2ad658 (\"ext2: huge page fault support\")\n\nI believe this path to be untested as ext2 doesn't reliably provide block\nallocations that are aligned to 2MiB.  In my testing I've been unable to\nget ext2 to actually fault in a PMD.  It always fails with a \"pfn\nunaligned\" message because the sector returned by ext2_get_block() isn't\naligned.\n\nI've tried various settings for the \"stride\" and \"stripe_width\" extended\noptions to mkfs.ext2, without any luck.\n\nSince we can't reliably get PMDs, remove support so that we don't have an\nuntested code path that we may someday traverse when we happen to get an\naligned block allocation.  This should also make 4k DAX faults in ext2 a\nbit faster since they will no longer have to call the PMD fault handler\nonly to get a response of VM_FAULT_FALLBACK.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Christoph Hellwig <hch@lst.de>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/03e0990fc88f82c85abeaf90aabe1921e4e0b72f"},{"sha":"ce95ab0fa669698805ff8841a756733a7702b5c9","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: make 'wait_table' global variable static\n\nThe global 'wait_table' variable is only used within fs/dax.c, and\ngenerates the following sparse warning:\n\nfs/dax.c:39:19: warning: symbol 'wait_table' was not declared. Should it be static?\n\nMake it static so it has scope local to fs/dax.c, and to make sparse happy.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Christoph Hellwig <hch@lst.de>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/ce95ab0fa669698805ff8841a756733a7702b5c9"},{"sha":"aada54f9800497cc8249c99ffcb1431c6d8e98e7","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: remove the last BUG_ON() from fs/dax.c\n\nDon't take down the kernel if we get an invalid 'from' and 'length'\nargument pair.  Just warn once and return an error.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Christoph Hellwig <hch@lst.de>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/aada54f9800497cc8249c99ffcb1431c6d8e98e7"},{"sha":"e3ad61c64abceeb5cc122f0bde3700e6e17ca60a","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: consistent variable naming for DAX entries\n\nNo functional change.\n\nConsistently use the variable name 'entry' instead of 'ret' for DAX radix\ntree entries.  This was already happening in most of the code, so update\nget_unlocked_mapping_entry(), grab_mapping_entry() and\ndax_unlock_mapping_entry().\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Christoph Hellwig <hch@lst.de>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/e3ad61c64abceeb5cc122f0bde3700e6e17ca60a"},{"sha":"63e95b5c4f16e156b98adcf2f7d820ba941c82a3","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: coordinate locking for offsets in PMD range\n\nDAX radix tree locking currently locks entries based on the unique\ncombination of the 'mapping' pointer and the pgoff_t 'index' for the entry.\nThis works for PTEs, but as we move to PMDs we will need to have all the\noffsets within the range covered by the PMD to map to the same bit lock.\nTo accomplish this, for ranges covered by a PMD entry we will instead lock\nbased on the page offset of the beginning of the PMD entry.  The 'mapping'\npointer is still used in the same way.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Christoph Hellwig <hch@lst.de>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/63e95b5c4f16e156b98adcf2f7d820ba941c82a3"},{"sha":"b9fde0462e34a05b25c3d68d344971865659abae","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: remove dax_pmd_fault()\n\ndax_pmd_fault() is the old struct buffer_head + get_block_t based 2 MiB DAX\nfault handler.  This fault handler has been disabled for several kernel\nreleases, and support for PMDs will be reintroduced using the struct iomap\ninterface instead.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Christoph Hellwig <hch@lst.de>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/b9fde0462e34a05b25c3d68d344971865659abae"},{"sha":"11c59c92f44d9272db7655a462608658a6d95013","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: correct dax iomap code namespace\n\nThe recently added DAX functions that use the new struct iomap data\nstructure were named iomap_dax_rw(), iomap_dax_fault() and\niomap_dax_actor().  These are actually defined in fs/dax.c, though, so\nshould be part of the \"dax\" namespace and not the \"iomap\" namespace.\nRename them to dax_iomap_rw(), dax_iomap_fault() and dax_iomap_actor()\nrespectively.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nSuggested-by: Dave Chinner <david@fromorbit.com>\nReviewed-by: Christoph Hellwig <hch@lst.de>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/11c59c92f44d9272db7655a462608658a6d95013"},{"sha":"333ccc978e1e09af2690e459b6f97d8e91cc01fa","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: add dax_iomap_sector() helper function\n\nTo be able to correctly calculate the sector from a file position and a\nstruct iomap there is a complex little bit of logic that currently happens\nin both dax_iomap_actor() and dax_iomap_fault().  This will need to be\nrepeated yet again in the DAX PMD fault handler when it is added, so break\nit out into a helper function.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Christoph Hellwig <hch@lst.de>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/333ccc978e1e09af2690e459b6f97d8e91cc01fa"},{"sha":"1550290b08012637e8d741a6a298ec6320dadda2","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: dax_iomap_fault() needs to call iomap_end()\n\nCurrently iomap_end() doesn't do anything for DAX page faults for both ext2\nand XFS.  ext2_iomap_end() just checks for a write underrun, and\nxfs_file_iomap_end() checks to see if it needs to finish a delayed\nallocation.  However, in the future iomap_end() calls might be needed to\nmake sure we have balanced allocations, locks, etc.  So, add calls to\niomap_end() with appropriate error handling to dax_iomap_fault().\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nSuggested-by: Jan Kara <jack@suse.cz>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/1550290b08012637e8d741a6a298ec6320dadda2"},{"sha":"fa28f7296a7ce38ed15dc06bd2149e04c8db9d4b","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: move RADIX_DAX_* defines to dax.h\n\nThe RADIX_DAX_* defines currently mostly live in fs/dax.c, with just\nRADIX_DAX_ENTRY_LOCK being in include/linux/dax.h so it can be used in\nmm/filemap.c.  When we add PMD support, though, mm/filemap.c will also need\naccess to the RADIX_DAX_PTE type so it can properly construct a 4k sized\nempty entry.\n\nInstead of shifting the defines between dax.c and dax.h as they are\nindividually used in other code, just move them wholesale to dax.h so\nthey'll be available when we need them.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Christoph Hellwig <hch@lst.de>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/fa28f7296a7ce38ed15dc06bd2149e04c8db9d4b"},{"sha":"422476c4641ec65906406f3d266b69a91dd3170c","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: move put_(un)locked_mapping_entry() in dax.c\n\nNo functional change.\n\nThe static functions put_locked_mapping_entry() and\nput_unlocked_mapping_entry() will soon be used in error cases in\ngrab_mapping_entry(), so move their definitions above this function.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/422476c4641ec65906406f3d266b69a91dd3170c"},{"sha":"642261ac995e01d7837db1f4b90181496f7e6835","author":{"name":"Ross Zwisler","email":"c378a23b792f44bb821645eacaec6abd0e1b5a1f@linux.intel.com"},"message":"dax: add struct iomap based DAX PMD support\n\nDAX PMDs have been disabled since Jan Kara introduced DAX radix tree based\nlocking.  This patch allows DAX PMDs to participate in the DAX radix tree\nbased locking scheme so that they can be re-enabled using the new struct\niomap based fault handlers.\n\nThere are currently three types of DAX 4k entries: 4k zero pages, 4k DAX\nmappings that have an associated block allocation, and 4k DAX empty\nentries.  The empty entries exist to provide locking for the duration of a\ngiven page fault.\n\nThis patch adds three equivalent 2MiB DAX entries: Huge Zero Page (HZP)\nentries, PMD DAX entries that have associated block allocations, and 2 MiB\nDAX empty entries.\n\nUnlike the 4k case where we insert a struct page* into the radix tree for\n4k zero pages, for HZP we insert a DAX exceptional entry with the new\nRADIX_DAX_HZP flag set.  This is because we use a single 2 MiB zero page in\nevery 2MiB hole mapping, and it doesn't make sense to have that same struct\npage* with multiple entries in multiple trees.  This would cause contention\non the single page lock for the one Huge Zero Page, and it would break the\npage->index and page->mapping associations that are assumed to be valid in\nmany other places in the kernel.\n\nOne difficult use case is when one thread is trying to use 4k entries in\nradix tree for a given offset, and another thread is using 2 MiB entries\nfor that same offset.  The current code handles this by making the 2 MiB\nuser fall back to 4k entries for most cases.  This was done because it is\nthe simplest solution, and because the use of 2MiB pages is already\nopportunistic.\n\nIf we were to try to upgrade from 4k pages to 2MiB pages for a given range,\nwe run into the problem of how we lock out 4k page faults for the entire\n2MiB range while we clean out the radix tree so we can insert the 2MiB\nentry.  We can solve this problem if we need to, but I think that the cases\nwhere both 2MiB entries and 4K entries are being used for the same range\nwill be rare enough and the gain small enough that it probably won't be\nworth the complexity.\n\nSigned-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nReviewed-by: Jan Kara <jack@suse.cz>\nSigned-off-by: Dave Chinner <david@fromorbit.com>","distinct":true,"url":"https://api.github.com/repos/ColinIanKing/linux/commits/642261ac995e01d7837db1f4b90181496f7e6835"}]}
{"actor":{"display_login":"ColinIanKing"}}