<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/udev, branch zfs-0.6.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=zfs-0.6.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=zfs-0.6.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2013-07-03T16:24:38Z</updated>
<entry>
<title>Open pools asynchronously after module load</title>
<updated>2013-07-03T16:24:38Z</updated>
<author>
<name>Brian Behlendorf</name>
<email>behlendorf1@llnl.gov</email>
</author>
<published>2013-07-02T18:59:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=91604b298c24c84fe03bc6c028abb961ca3e6fcf'/>
<id>urn:sha1:91604b298c24c84fe03bc6c028abb961ca3e6fcf</id>
<content type='text'>
One of the side effects of calling zvol_create_minors() in
zvol_init() is that all pools listed in the cache file will
be opened.  Depending on the state and contents of your pool
this operation can take a considerable length of time.

Doing this at load time is undesirable because the kernel
is holding a global module lock.  This prevents other modules
from loading and can serialize an otherwise parallel boot
process.  Doing this after module inititialization also
reduces the chances of accidentally introducing a race
during module init.

To ensure that /dev/zvol/&lt;pool&gt;/&lt;dataset&gt; devices are
still automatically created after the module load completes
a udev rules has been added.  When udev notices that the
/dev/zfs device has been create the 'zpool list' command
will be run.  This then will cause all the pools listed
in the zpool.cache file to be opened.

Because this process in now driven asynchronously by udev
there is the risk of problems in downstream distributions.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Issue #756
Issue #1020
Issue #1234
</content>
</entry>
<entry>
<title>Retire zpool_id infrastructure</title>
<updated>2013-01-29T20:23:17Z</updated>
<author>
<name>Brian Behlendorf</name>
<email>behlendorf1@llnl.gov</email>
</author>
<published>2013-01-29T18:53:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=dbf763b39b232996f0d6bb0022e4446643c18e05'/>
<id>urn:sha1:dbf763b39b232996f0d6bb0022e4446643c18e05</id>
<content type='text'>
In the interest of maintaining only one udev helper to give vdevs
user friendly names, the zpool_id and zpool_layout infrastructure
is being retired.  They are superseded by vdev_id which incorporates
all the previous functionality.

Documentation for the new vdev_id(8) helper and its configuration
file, vdev_id.conf(5), can be found in their respective man pages.
Several useful example files are installed under /etc/zfs/.

  /etc/zfs/vdev_id.conf.alias.example
  /etc/zfs/vdev_id.conf.multipath.example
  /etc/zfs/vdev_id.conf.sas_direct.example
  /etc/zfs/vdev_id.conf.sas_switch.example

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #981
</content>
</entry>
<entry>
<title>Update 69-vdev.rules .gitignore</title>
<updated>2012-12-14T20:16:42Z</updated>
<author>
<name>Brian Behlendorf</name>
<email>behlendorf1@llnl.gov</email>
</author>
<published>2012-12-14T19:45:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=bd192c4f4831fae78f9dc3264b8c1a9b6dc85307'/>
<id>urn:sha1:bd192c4f4831fae78f9dc3264b8c1a9b6dc85307</id>
<content type='text'>
Commit 2957f38 renamed 60-vdev.rules to 69-vdev.rules but failed
to update the .gitignore file to reflect this change.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
</content>
</entry>
<entry>
<title>vdev_id support for device link aliases</title>
<updated>2012-12-03T22:04:47Z</updated>
<author>
<name>Ned Bass</name>
<email>bass6@llnl.gov</email>
</author>
<published>2012-11-29T19:08:37Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2957f38d78d376431ab18d2f576099d682d7a711'/>
<id>urn:sha1:2957f38d78d376431ab18d2f576099d682d7a711</id>
<content type='text'>
Add a vdev_id feature to map device names based on already defined
udev device links.  To increase the odds that vdev_id will run after
the rules it depends on, increase the vdev.rules rule number from 60
to 69.  With this change, vdev_id now provides functionality analogous
to zpool_id and zpool_layout, paving the way to retire those tools.

A defined alias takes precedence over a topology-derived name, but the
two naming methods can otherwise coexist. For example, one might name
drives in a JBOD with the sas_direct topology while naming an internal
L2ARC device with an alias.

For example, the following lines in vdev_id.conf will result in the
creation of links /dev/disk/by-vdev/{d1,d2}, each pointing to the same
target as the device link specified in the third field.

  #     by-vdev
  #     name     fully qualified or base name of device link
  alias d1       /dev/disk/by-id/wwn-0x5000c5002de3b9ca
  alias d2       wwn-0x5000c5002def789e

Also perform some minor vdev_id cleanup, such as removal of the unused
-s command line option.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #981
</content>
</entry>
<entry>
<title>Fix hard coded path in 60-vdev.rules.in</title>
<updated>2012-11-13T20:04:15Z</updated>
<author>
<name>Richard Yao</name>
<email>ryao@cs.stonybrook.edu</email>
</author>
<published>2012-11-12T17:34:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2af96a5df53cfc281dc5c5f72eac5bb2b1739733'/>
<id>urn:sha1:2af96a5df53cfc281dc5c5f72eac5bb2b1739733</id>
<content type='text'>
The udev data directory was hard coded in 60-vdev.rules.in. That causes
a problem when a distribution changes the location of the directory.
This was not an issue in the past because virtually all distributions
used the same path, but that is beginning to change following a decision
by the systemd developers to change the directory location to reflect
their take-over of udev maintainership. The testing branch of Gentoo
Linux adopted this change, which enabled the hardcoded directory
location to trigger a regression.

Signed-off-by: Richard Yao &lt;ryao@cs.stonybrook.edu&gt;
Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #1085
</content>
</entry>
<entry>
<title>Remove autotools products</title>
<updated>2012-08-27T18:47:44Z</updated>
<author>
<name>Brian Behlendorf</name>
<email>behlendorf1@llnl.gov</email>
</author>
<published>2012-08-27T01:10:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ca8b5af89d2c5826af7385bf18f3b377b0efde11'/>
<id>urn:sha1:ca8b5af89d2c5826af7385bf18f3b377b0efde11</id>
<content type='text'>
Remove all of the generated autotools products from the repository
and update the .gitignore files accordingly.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #718
</content>
</entry>
<entry>
<title>Set zvol discard_granularity to the volblocksize.</title>
<updated>2012-08-07T21:55:31Z</updated>
<author>
<name>Etienne Dechamps</name>
<email>etienne.dechamps@ovh.net</email>
</author>
<published>2012-08-01T08:29:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ee5fd0bb80d68ef095f831784cbb17181b2ba898'/>
<id>urn:sha1:ee5fd0bb80d68ef095f831784cbb17181b2ba898</id>
<content type='text'>
Currently, zvols have a discard granularity set to 0, which suggests to
the upper layer that discard requests of arbirarily small size and
alignment can be made efficiently.

In practice however, ZFS does not handle unaligned discard requests
efficiently: indeed, it is unable to free a part of a block. It will
write zeros to the specified range instead, which is both useless and
inefficient (see dnode_free_range).

With this patch, zvol block devices expose volblocksize as their discard
granularity, so the upper layer is aware that it's not supposed to send
discard requests smaller than volblocksize.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #862
</content>
</entry>
<entry>
<title>Linux 3.5 compat, end_writeback() changed to clear_inode()</title>
<updated>2012-07-23T19:29:36Z</updated>
<author>
<name>Richard Yao</name>
<email>ryao@cs.stonybrook.edu</email>
</author>
<published>2012-07-23T18:39:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=739a1a82e0f366923e8d9bc8f9ad4b1c680a780b'/>
<id>urn:sha1:739a1a82e0f366923e8d9bc8f9ad4b1c680a780b</id>
<content type='text'>
The end_writeback() function was changed by moving the call to
inode_sync_wait() earlier in to evict().   This effecitvely changes
the ordering of the sync but it does not impact the details of
the zfs implementation.

However, as part of this change end_writeback() was renamed to
clear_inode() to reflect the new semantics.  This change does
impact us and clear_inode() now maps to end_writeback() for
kernels prior to 3.5.

Signed-off-by: Richard Yao &lt;ryao@cs.stonybrook.edu&gt;
Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #784
</content>
</entry>
<entry>
<title>Linux 3.5 compat, iops-&gt;truncate_range() removed</title>
<updated>2012-07-23T19:29:32Z</updated>
<author>
<name>Richard Yao</name>
<email>ryao@cs.stonybrook.edu</email>
</author>
<published>2012-07-23T18:11:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ea1fdf46e2d37e9eb048f9add0fb06e77e9ee6e2'/>
<id>urn:sha1:ea1fdf46e2d37e9eb048f9add0fb06e77e9ee6e2</id>
<content type='text'>
The vmtruncate_range() support has been removed from the kernel in
favor of using the fallocate method in the file_operations table.

Signed-off-by: Richard Yao &lt;ryao@cs.stonybrook.edu&gt;
Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Issue #784
</content>
</entry>
<entry>
<title>Linux 3.5 compat, eops-&gt;encode_fh() takes inodes</title>
<updated>2012-07-23T19:29:23Z</updated>
<author>
<name>Richard Yao</name>
<email>ryao@cs.stonybrook.edu</email>
</author>
<published>2012-07-23T17:55:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=756c3e5a9ce36461939a8dc421918e1c3a379fa6'/>
<id>urn:sha1:756c3e5a9ce36461939a8dc421918e1c3a379fa6</id>
<content type='text'>
The export_operations member -&gt;encode_fh() has been updated to
take both the child and parent inodes.  This interface used to
take the child dentry and a bool describing if the parent is needed.

NOTE: While updating this code I noticed that we do not currently
cleanly handle the case where we're passed a connectable parent.
This code should be audited to make sure we're doing the right thing.

Signed-off-by: Richard Yao &lt;ryao@cs.stonybrook.edu&gt;
Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Issue #784
</content>
</entry>
</feed>
