<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libefi, branch zfs-0.6.3</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>Improve partition detection on lesser used devices</title>
<updated>2014-04-08T21:45:12+00:00</updated>
<author>
<name>Richard Yao</name>
<email>ryao@gentoo.org</email>
</author>
<published>2014-01-09T17:52:10+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=787c455ed7a519bbf2e56140621259eb7b23b6fb'/>
<id>787c455ed7a519bbf2e56140621259eb7b23b6fb</id>
<content type='text'>
The format strings in efi_get_info() are intended to extract both the
main device and partition number. However, this is only done correctly
for hd, sd and vd devices. The format strings for ram, dm-, md and loop
devices misparse the input. This causes the partition device to be
incorrectly labelled as the main device with the partition being
labelled 0.

Reported-by: ilovezfs &lt;ilovezfs@icloud.com&gt;
Signed-off-by: Richard Yao &lt;ryao@gentoo.org&gt;
Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Issue #2175
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The format strings in efi_get_info() are intended to extract both the
main device and partition number. However, this is only done correctly
for hd, sd and vd devices. The format strings for ram, dm-, md and loop
devices misparse the input. This causes the partition device to be
incorrectly labelled as the main device with the partition being
labelled 0.

Reported-by: ilovezfs &lt;ilovezfs@icloud.com&gt;
Signed-off-by: Richard Yao &lt;ryao@gentoo.org&gt;
Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Issue #2175
</pre>
</div>
</content>
</entry>
<entry>
<title>Define the needed ISA types for Sparc</title>
<updated>2014-01-09T23:49:59+00:00</updated>
<author>
<name>Brian Behlendorf</name>
<email>behlendorf1@llnl.gov</email>
</author>
<published>2014-01-07T22:14:33+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=d7ec8d4fd9b704f6bc1220e6a79472ad9b3af0c8'/>
<id>d7ec8d4fd9b704f6bc1220e6a79472ad9b3af0c8</id>
<content type='text'>
Add the minimum required ISA types to support the Sparc
architecture.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Signed-off-by: Ned Bass &lt;bass6@llnl.gov&gt;
Signed-off-by: marku89 &lt;mar42@kola.li&gt;
Issue #1700
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add the minimum required ISA types to support the Sparc
architecture.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Signed-off-by: Ned Bass &lt;bass6@llnl.gov&gt;
Signed-off-by: marku89 &lt;mar42@kola.li&gt;
Issue #1700
</pre>
</div>
</content>
</entry>
<entry>
<title>cstyle: Resolve C style issues</title>
<updated>2013-12-19T00:46:35+00:00</updated>
<author>
<name>Michael Kjorling</name>
<email>michael@kjorling.se</email>
</author>
<published>2013-11-01T19:26:11+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=d1d7e2689db9e03f11c069ebc9f1ba12829e5dac'/>
<id>d1d7e2689db9e03f11c069ebc9f1ba12829e5dac</id>
<content type='text'>
The vast majority of these changes are in Linux specific code.
They are the result of not having an automated style checker to
validate the code when it was originally written.  Others were
caused when the common code was slightly adjusted for Linux.

This patch contains no functional changes.  It only refreshes
the code to conform to style guide.

Everyone submitting patches for inclusion upstream should now
run 'make checkstyle' and resolve any warning prior to opening
a pull request.  The automated builders have been updated to
fail a build if when 'make checkstyle' detects an issue.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #1821
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The vast majority of these changes are in Linux specific code.
They are the result of not having an automated style checker to
validate the code when it was originally written.  Others were
caused when the common code was slightly adjusted for Linux.

This patch contains no functional changes.  It only refreshes
the code to conform to style guide.

Everyone submitting patches for inclusion upstream should now
run 'make checkstyle' and resolve any warning prior to opening
a pull request.  The automated builders have been updated to
fail a build if when 'make checkstyle' detects an issue.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #1821
</pre>
</div>
</content>
</entry>
<entry>
<title>Generate libraries with correct DT_NEEDED entries</title>
<updated>2013-10-10T23:56:51+00:00</updated>
<author>
<name>Richard Yao</name>
<email>ryao@gentoo.org</email>
</author>
<published>2013-09-26T17:42:41+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=31fc19399e597e3391f19f1392ab120f1de0d5f2'/>
<id>31fc19399e597e3391f19f1392ab120f1de0d5f2</id>
<content type='text'>
Libraries that depend on other libraries should list them in ELF's
DT_NEEDED field so that programs linking to them do not need to specify
those libraries unless they depend on them as well. This is not the case
in the current code and the consequence is that anything that needs a
library must know its dependencies. This is fragile and caused GRUB2's
configure script to break when a dependency was added on libblkid in
libzfs.

This resolves that problem by using LIBADD/LDADD to specify libraries in
Makefile.am instead of LDFLAGS. This ensures that proper DT_NEEDED
entries are generated and prevents GRUB2's configure script from
breaking in the presence of a libblkid dependency. This also removes
unneeded dependencies from various files.

Signed-off-by: Richard Yao &lt;ryao@gentoo.org&gt;
Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Issue #1751
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Libraries that depend on other libraries should list them in ELF's
DT_NEEDED field so that programs linking to them do not need to specify
those libraries unless they depend on them as well. This is not the case
in the current code and the consequence is that anything that needs a
library must know its dependencies. This is fragile and caused GRUB2's
configure script to break when a dependency was added on libblkid in
libzfs.

This resolves that problem by using LIBADD/LDADD to specify libraries in
Makefile.am instead of LDFLAGS. This ensures that proper DT_NEEDED
entries are generated and prevents GRUB2's configure script from
breaking in the presence of a libblkid dependency. This also removes
unneeded dependencies from various files.

Signed-off-by: Richard Yao &lt;ryao@gentoo.org&gt;
Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Issue #1751
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove autotools products</title>
<updated>2012-08-27T18:47:44+00:00</updated>
<author>
<name>Brian Behlendorf</name>
<email>behlendorf1@llnl.gov</email>
</author>
<published>2012-08-27T01:10:24+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=ca8b5af89d2c5826af7385bf18f3b377b0efde11'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>Set zvol discard_granularity to the volblocksize.</title>
<updated>2012-08-07T21:55:31+00:00</updated>
<author>
<name>Etienne Dechamps</name>
<email>etienne.dechamps@ovh.net</email>
</author>
<published>2012-08-01T08:29:59+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=ee5fd0bb80d68ef095f831784cbb17181b2ba898'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>Linux 3.5 compat, end_writeback() changed to clear_inode()</title>
<updated>2012-07-23T19:29:36+00:00</updated>
<author>
<name>Richard Yao</name>
<email>ryao@cs.stonybrook.edu</email>
</author>
<published>2012-07-23T18:39:25+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=739a1a82e0f366923e8d9bc8f9ad4b1c680a780b'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>Linux 3.5 compat, iops-&gt;truncate_range() removed</title>
<updated>2012-07-23T19:29:32+00:00</updated>
<author>
<name>Richard Yao</name>
<email>ryao@cs.stonybrook.edu</email>
</author>
<published>2012-07-23T18:11:25+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=ea1fdf46e2d37e9eb048f9add0fb06e77e9ee6e2'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>Linux 3.5 compat, eops-&gt;encode_fh() takes inodes</title>
<updated>2012-07-23T19:29:23+00:00</updated>
<author>
<name>Richard Yao</name>
<email>ryao@cs.stonybrook.edu</email>
</author>
<published>2012-07-23T17:55:48+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=756c3e5a9ce36461939a8dc421918e1c3a379fa6'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>Move partition scanning from userspace to module.</title>
<updated>2012-07-17T16:17:31+00:00</updated>
<author>
<name>Etienne Dechamps</name>
<email>etienne.dechamps@ovh.net</email>
</author>
<published>2012-07-11T13:06:32+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b5a28807cdec3c05aa69cbe4689cd914dc94783a'/>
<id>b5a28807cdec3c05aa69cbe4689cd914dc94783a</id>
<content type='text'>
Currently, zpool online -e (dynamic vdev expansion) doesn't work on
whole disks because we're invoking ioctl(BLKRRPART) from userspace
while ZFS still has a partition open on the disk, which results in
EBUSY.

This patch moves the BLKRRPART invocation from the zpool utility to the
module. Specifically, this is done just before opening the device in
vdev_disk_open() which is called inside vdev_reopen(). This requires
jumping through some hoops to get to the disk device from the partition
device, and to make sure we can still open the partition after the
BLKRRPART call.

Note that this new code path is triggered on dynamic vdev expansion
only; other actions, like creating a new pool, are unchanged and still
call BLKRRPART from userspace.

This change also depends on API changes which are available in 2.6.37
and latter kernels.  The build system has been updated to detect this,
but there is no compatibility mode for older kernels.  This means that
online expansion will NOT be available in older kernels.  However, it
will still be possible to expand the vdev offline.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #808
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, zpool online -e (dynamic vdev expansion) doesn't work on
whole disks because we're invoking ioctl(BLKRRPART) from userspace
while ZFS still has a partition open on the disk, which results in
EBUSY.

This patch moves the BLKRRPART invocation from the zpool utility to the
module. Specifically, this is done just before opening the device in
vdev_disk_open() which is called inside vdev_reopen(). This requires
jumping through some hoops to get to the disk device from the partition
device, and to make sure we can still open the partition after the
BLKRRPART call.

Note that this new code path is triggered on dynamic vdev expansion
only; other actions, like creating a new pool, are unchanged and still
call BLKRRPART from userspace.

This change also depends on API changes which are available in 2.6.37
and latter kernels.  The build system has been updated to detect this,
but there is no compatibility mode for older kernels.  This means that
online expansion will NOT be available in older kernels.  However, it
will still be possible to expand the vdev offline.

Signed-off-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Closes #808
</pre>
</div>
</content>
</entry>
</feed>
