{"shas":[["0f4524cca43b1718d54970fcaf0201541733903c","79778dbbdd172ad4142b370229409ecedf95bcb5@beutner.name","Fixed indentation in the zfs.lunar init script.\n\nOne of the blocks in the init script wasn't indented properly.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Gunnar Beutner"],["c8082367cfe9954f0e932fb1513b518d8b84022d","79778dbbdd172ad4142b370229409ecedf95bcb5@beutner.name","Removed erroneous backticks in the zfs.lunar init script.\n\nThe backticks would cause the output of the zfs commands\nto be evaluated as input for the if construct rather than\ntheir exit status.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Gunnar Beutner"],["e93ced48475b697734ae4fbc65c4e600b9752849","2e4a3747418a6da627fb2222179aafaa34eb8cc6@thebedells.org","Update zfs.gentoo/zfs.lsb init script\n\n* Update paths to zpool/zfs tools,\n* Log less for non-error conditions,\n* Don't be fatal if umount fails at shutdown -- final init remount\n  will take care of it if /usr or / are in use\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Zachary Bedell"],["fde4ce992db516796df3a7d1c0e018c5f8c537f6","2e4a3747418a6da627fb2222179aafaa34eb8cc6@thebedells.org","Update for Dracut-010\n\nUpdate Dracut module for Dracut-010 and fix race conditions that\ncaused boot to fail on MP systems.  Add support for zfs_force flag\nand parsing of spl_hostid from kernel command line.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Zachary Bedell"],["dc2a4a9136ab5f6e56f9ca8581ec1535adce6c36","2e4a3747418a6da627fb2222179aafaa34eb8cc6@thebedells.org","Document initramfs process\n\nAdd documentation for Dracut and the initramfs process.  This includes\ndetailing the basic boot process and options available.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Zachary Bedell"],["46e18b3f0fc13aa0859d0fef7dc829db20491ab6","79778dbbdd172ad4142b370229409ecedf95bcb5@beutner.name","Implemented sharing datasets via NFS using libshare.\n\nThe sharenfs and sharesmb properties depend on the libshare library\nto export datasets via NFS and SMB. This commit implements the base\nlibshare functionality as well as support for managing NFS shares.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Gunnar Beutner"],["52e7c3a2e503f78a44fbe5fd9299b11c3aa98651","79778dbbdd172ad4142b370229409ecedf95bcb5@beutner.name","Link libshare directly to libzfs\n\nDrop usage of dlopen/dlsym for libshare.  There is no need to do\nthis because the zfs packages provide libshare.  Unlike on Solaris\nwe are guaranteed it will be available.\n\nThis avoids possible problems with hardcoding the libshare path in\nthe code (e.g. when users specify a different install path via\nconfigure options).  It additionally simplifies the code which is\ngood for maintainability.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Gunnar Beutner"],["3c9609b322db2925aff628217eca9297d6fb569b","79778dbbdd172ad4142b370229409ecedf95bcb5@beutner.name","Renamed HAVE_SHARE ifdefs to HAVE_SMB_SHARE.\n\nThe remaining code that is guarded by HAVE_SHARE ifdefs is related to the\n.zfs/shares functionality which is currently not available on Linux.\n\nOn Solaris the .zfs/shares directory can be used to set permissions for\nSMB shares.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Gunnar Beutner"],["8b0cf399ff9e764a08faea654bd30043a861cb09","79778dbbdd172ad4142b370229409ecedf95bcb5@beutner.name","Updated init scripts to enable automatic sharing of ZFS datasets.\n\nThe relevant init scripts were updated so as to automatically share\nZFS datasets using \"zfs share -a\" at boot time.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Gunnar Beutner"],["b1c932d318ae604b6968ffef136952af4e80a407","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Add proper library versioning\n\nThe zfs libraries were never properly versioned.  Since the API has\nremained static for quite some time this we never an issue.  However,\ngoing forward they should be versioned.  This commit versions all\nof the libraries to 1.0.0.  From here on out this version must be\nupdated to reflect changes to the library.","Brian Behlendorf"],["341b5f1d4c03c0f318218346154e2fb79a8acb92","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Update ztest paths\n\nUnfortunately, ztest is hard coded to export the zdb utility to\nbe installed in a certain location.  When the packaging was updated\nto install zdb in /sbin/ ztest was broken.  To fix this I'm updating\nztest to check both common install paths.","Brian Behlendorf"],["3af2ce4d6883ab96814fb1d0bc01368bb06c5343","64b2b6d12bfe4baae7dad3d018f8cbf6b0e7a044@fajar.net","Check for \"udevadm settle\" vs \"udevsettle\"\n\nRHEL5 does not have udevadm, so fix initscript accordingly\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #315","Fajar A. Nugraha"],["1fa3bb750d0418dc4a5a3abd2bd8cce9c205c9e1","64b2b6d12bfe4baae7dad3d018f8cbf6b0e7a044@fajar.net","Remove zfs service only on uninstall, not on upgrade\n\nThis caused problems on upgrade using RPM:\n\n* The new version will run chkconfig --add, which has no effect\n  since the service was already added.\n\n* The old version will run chkconfig --del, which caused zfs\n  service removal.\n\nOnly run \"chkconfig --del\" on complete uninstall, by checking\nthe value of \"$1\" to %preun, which will be \"0\" on uninstall,\nand \"1\" on upgrade.\n\n  http://www.rpm.org/max-rpm/s1-rpm-inside-scripts.html\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #314","Fajar A. Nugraha"],["e0f86c98620bbc085a7edddd8f6dbf82e4783a46","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Update 'zfs send' documentation\n\nThe -D and -p options were missing from the manpage.  This commit\nadds documentation for these features.\n\nCloses #311","Brian Behlendorf"],["abd8610cd5ffd04f0fa07297f53852e744ea389e","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Add L2ARC tunables\n\nThe performance of the L2ARC can be tweaked by a number of tunables, which\nmay be necessary for different workloads:\n\n     l2arc_write_max         max write bytes per interval\n     l2arc_write_boost       extra write bytes during device warmup\n     l2arc_noprefetch        skip caching prefetched buffers\n     l2arc_headroom          number of max device writes to precache\n     l2arc_feed_secs         seconds between L2ARC writing\n     l2arc_feed_min_ms       min feed interval in milliseconds\n     l2arc_feed_again        turbo L2ARC warmup\n     l2arc_norw              no reads during writes\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #316","Brian Behlendorf"],["057e8eee35d4cc06cc4edd6e8239d28a4122cf71","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Improve fstat(2) performance\n\nThere is at most a factor of 3x performance improvement to be\nhad by using the Linux generic_fillattr() helper.  However, to\nuse it safely we need to ensure the values in a cached inode\nare kept rigerously up to date.  Unfortunately, this isn't\nthe case for the blksize, blocks, and atime fields.  At the\nmoment the authoritative values are still stored in the znode.\n\nThis patch introduces an optimized zfs_getattr_fast() call.\nThe idea is to use the up to date values from the inode and\nthe blksize, block, and atime fields from the znode.  At some\nlatter date we should be able to strictly use the inode values\nand further improve performance.\n\nThe remaining overhead in the zfs_getattr_fast() call can be\nattributed to having to take the znode mutex.  This overhead is\nunavoidable until the inode is kept strictly up to date.  The\nthe careful reader will notice the we do not use the customary\nZFS_ENTER()/ZFS_EXIT() macros.  These macro's are designed to\nensure the filesystem is not torn down in the middle of an\noperation.  However, in this case the VFS is holding a\nreference on the active inode so we know this is impossible.\n\n=================== Performance Tests ========================\n\nThis test calls the fstat(2) system call 10,000,000 times on\nan open file description in a tight loop.  The test results\nshow the zfs stat(2) performance is now only 22% slower than\next4.  This is a 2.5x improvement and there is a clear long\nterm plan to get to parity with ext4.\n\nfilesystem    | test-1  test-2  test-3  | average | times-ext4\n--------------+-------------------------+---------+-----------\next4          |  7.785s  7.899s  7.284s |  7.656s | 1.000x\nzfs-0.6.0-rc4 | 24.052s 22.531s 23.857s | 23.480s | 3.066x\nzfs-faststat  |  9.224s  9.398s  9.485s |  9.369s | 1.223x\n\nThe second test is to run 'du' of a copy of the /usr tree\nwhich contains 110514 files.  The test is run multiple times\nboth using both a cold cache (/proc/sys/vm/drop_caches) and\na hot cache.  As expected this change signigicantly improved\nthe zfs hot cache performance and doesn't quite bring zfs to\nparity with ext4.\n\nA little surprisingly the zfs cold cache performance is better\nthan ext4.  This can probably be attributed to the zfs allocation\npolicy of co-locating all the meta data on disk which minimizes\nseek times.  By default the ext4 allocator will spread the data\nover the entire disk only co-locating each directory.\n\nfilesystem    | cold    | hot\n--------------+---------+--------\next4          | 13.318s | 1.040s\nzfs-0.6.0-rc4 |  4.982s | 1.762s\nzfs-faststat  |  4.933s | 1.345s","Brian Behlendorf"],["615ab66d18f74b3f4979c06192e1aa1082523dd3","08a5564a79b3d56562ff091aa4077e9abd0cdc3e@kylefuller.co.uk","Provide a rc.d script for archlinux\n\nUnlike most other Linux distributions archlinux installs its\ninit scripts in /etc/rc.d insead of /etc/init.d.  This commit\nprovides an archlinux rc.d script for zfs and extends the\nbuild infrastructure to ensure it get's installed in the\ncorrect place.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nCloses #322","Kyle Fuller"],["61f218b0900194edfb2e67739221e49c46fc5ee0","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Fix send/recv 'dataset is busy' errors\n\nThis commit fixes a regression which was accidentally introduced by\nthe Linux 2.6.39 compatibility chanages.  As part of these changes\ninstead of holding an active reference on the namepsace (which is\nno longer posible) a reference is taken on the super block.  This\nreference ensures the super block remains valid while it is in use.\n\nTo handle the unlikely race condition of the filesystem being\nunmounted concurrently with the start of a 'zfs send/recv' the\ncode was updated to only take the super block reference when there\nwas an existing reference.  This indicates that the filesystem is\nactive and in use.\n\nUnfortunately, in the 'zfs recv' case this is not the case.  The\nnewly created dataset will not have a super block without an\nactive reference which results in the 'dataset is busy' error.\n\nThe most straight forward fix for this is to simply update the\ncode to always take the reference even when it's zero.  This\nmay expose us to very very unlikely concurrent umount/send/recv\ncase but the consequences of that are minor.\n\nCloses #319","Brian Behlendorf"],["7f9d9946f88a37954ac208272bee0d4b3988da7f","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Update 'zpool import' man page\n\nThe following supported options were missing from the zpool.8\nman page.  The OpenSolaris man pages originally used were simply\nout of date with the code.\n\nzpool import\n  -F Recovery mode\n  -m Allow missing log devices\n  -N Import but don't mount\n  -n Determine if recoverable but don't do it\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>","Brian Behlendorf"],["a140dc5469399eaf2347ee7db503275f38f5dc12","32d50ad1e384dcb9a5bf7e40fa470df5dabaf348@llnl.gov","Fix mmap(2)/write(2)/read(2) deadlock\n\nWhen modifing overlapping regions of a file using mmap(2) and\nwrite(2)/read(2) it is possible to deadlock due to a lock inversion.\nThe zfs_write() and zfs_read() hooks first take the zfs range lock\nand then lock the individual pages.  Conversely, when using mmap'ed\nI/O the zpl_writepage() hook is called with the individual page\nlocks already taken and then zfs_putpage() takes the zfs range lock.\n\nThe most straight forward fix is to simply not take the zfs range\nlock in the mmap(2) case.  The individual pages will still be locked\nthus serializing access.  Updating the same region of a file with\nwrite(2) and mmap(2) has always been a dodgy thing to do.  This change\nat a minimum ensures we don't deadlock and is consistent with the\nexisting Linux semantics enforced by the VFS.\n\nThis isn't an issue under Solaris because the only range locking\nperformed will be with the zfs range locks.  It's up to each filesystem\nto perform its own file locking.  Under Linux the VFS provides many\nof these services.\n\nIt may be possible/desirable at a latter date to entirely dump the\nexisting zfs range locking and rely on the Linux VFS page locks.\nHowever, for now its safest to perform both layers of locking until\nzfs is more tightly integrated with the page cache.\n\nSigned-off-by: Brian Behlendorf <behlendorf1@llnl.gov>\nIssue #302","Brian Behlendorf"]],"ref":"refs/heads/upstream","size":69,"head":"185853d9f202b306d9c316b66b774c498ed6577c","push_id":42160808}