Commit 7b977298 authored by Colin Ian King's avatar Colin Ian King Committed by Kamal Mostafa

UBUNTU: SAUCE: (noup) Update zfs to 0.6.5.6-0ubuntu10

BugLink: http://bugs.launchpad.net/bugs/1594871

Sync with the latest Xenial zfs-linux 0.6.5.6-0ubuntu10
Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
Acked-by: default avatarTim Gardner <tim.gardner@canonical.com>
Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
parent ae57e5b2
...@@ -2,7 +2,7 @@ Meta: 1 ...@@ -2,7 +2,7 @@ Meta: 1
Name: zfs Name: zfs
Branch: 1.0 Branch: 1.0
Version: 0.6.5.6 Version: 0.6.5.6
Release: 0ubuntu3 Release: 0ubuntu10
Release-Tags: relext Release-Tags: relext
License: CDDL License: CDDL
Author: OpenZFS on Linux Author: OpenZFS on Linux
...@@ -139,7 +139,7 @@ vdev_elevator_switch(vdev_t *v, char *elevator) ...@@ -139,7 +139,7 @@ vdev_elevator_switch(vdev_t *v, char *elevator)
return (0); return (0);
/* Leave existing scheduler when set to "none" */ /* Leave existing scheduler when set to "none" */
if (strncmp(elevator, "none", 4) && (strlen(elevator) == 4) == 0) if ((strncmp(elevator, "none", 4) == 0) && (strlen(elevator) == 4))
return (0); return (0);
#ifdef HAVE_ELEVATOR_CHANGE #ifdef HAVE_ELEVATOR_CHANGE
...@@ -244,12 +244,12 @@ vdev_disk_open(vdev_t *v, uint64_t *psize, uint64_t *max_psize, ...@@ -244,12 +244,12 @@ vdev_disk_open(vdev_t *v, uint64_t *psize, uint64_t *max_psize,
{ {
struct block_device *bdev = ERR_PTR(-ENXIO); struct block_device *bdev = ERR_PTR(-ENXIO);
vdev_disk_t *vd; vdev_disk_t *vd;
int mode, block_size; int count = 0, mode, block_size;
/* Must have a pathname and it must be absolute. */ /* Must have a pathname and it must be absolute. */
if (v->vdev_path == NULL || v->vdev_path[0] != '/') { if (v->vdev_path == NULL || v->vdev_path[0] != '/') {
v->vdev_stat.vs_aux = VDEV_AUX_BAD_LABEL; v->vdev_stat.vs_aux = VDEV_AUX_BAD_LABEL;
return (EINVAL); return (SET_ERROR(EINVAL));
} }
/* /*
...@@ -264,7 +264,7 @@ vdev_disk_open(vdev_t *v, uint64_t *psize, uint64_t *max_psize, ...@@ -264,7 +264,7 @@ vdev_disk_open(vdev_t *v, uint64_t *psize, uint64_t *max_psize,
vd = kmem_zalloc(sizeof (vdev_disk_t), KM_SLEEP); vd = kmem_zalloc(sizeof (vdev_disk_t), KM_SLEEP);
if (vd == NULL) if (vd == NULL)
return (ENOMEM); return (SET_ERROR(ENOMEM));
/* /*
* Devices are always opened by the path provided at configuration * Devices are always opened by the path provided at configuration
...@@ -279,16 +279,35 @@ vdev_disk_open(vdev_t *v, uint64_t *psize, uint64_t *max_psize, ...@@ -279,16 +279,35 @@ vdev_disk_open(vdev_t *v, uint64_t *psize, uint64_t *max_psize,
* /dev/[hd]d devices which may be reordered due to probing order. * /dev/[hd]d devices which may be reordered due to probing order.
* Devices in the wrong locations will be detected by the higher * Devices in the wrong locations will be detected by the higher
* level vdev validation. * level vdev validation.
*
* The specified paths may be briefly removed and recreated in
* response to udev events. This should be exceptionally unlikely
* because the zpool command makes every effort to verify these paths
* have already settled prior to reaching this point. Therefore,
* a ENOENT failure at this point is highly likely to be transient
* and it is reasonable to sleep and retry before giving up. In
* practice delays have been observed to be on the order of 100ms.
*/ */
mode = spa_mode(v->vdev_spa); mode = spa_mode(v->vdev_spa);
if (v->vdev_wholedisk && v->vdev_expanding) if (v->vdev_wholedisk && v->vdev_expanding)
bdev = vdev_disk_rrpart(v->vdev_path, mode, vd); bdev = vdev_disk_rrpart(v->vdev_path, mode, vd);
if (IS_ERR(bdev))
while (IS_ERR(bdev) && count < 50) {
bdev = vdev_bdev_open(v->vdev_path, bdev = vdev_bdev_open(v->vdev_path,
vdev_bdev_mode(mode), zfs_vdev_holder); vdev_bdev_mode(mode), zfs_vdev_holder);
if (unlikely(PTR_ERR(bdev) == -ENOENT)) {
msleep(10);
count++;
} else if (IS_ERR(bdev)) {
break;
}
}
if (IS_ERR(bdev)) { if (IS_ERR(bdev)) {
dprintf("failed open v->vdev_path=%s, error=%d count=%d\n",
v->vdev_path, -PTR_ERR(bdev), count);
kmem_free(vd, sizeof (vdev_disk_t)); kmem_free(vd, sizeof (vdev_disk_t));
return (-PTR_ERR(bdev)); return (SET_ERROR(-PTR_ERR(bdev)));
} }
v->vdev_tsd = vd; v->vdev_tsd = vd;
......
...@@ -457,6 +457,7 @@ update_histogram(uint64_t value_arg, uint16_t *hist, uint32_t *count) ...@@ -457,6 +457,7 @@ update_histogram(uint64_t value_arg, uint16_t *hist, uint32_t *count)
/* We store the bits in big-endian (largest-first) order */ /* We store the bits in big-endian (largest-first) order */
for (i = 0; i < 64; i++) { for (i = 0; i < 64; i++) {
if (value & (1ull << i)) { if (value & (1ull << i)) {
if (hist[63 - i] < UINT16_MAX)
hist[63 - i]++; hist[63 - i]++;
++bits; ++bits;
} }
...@@ -615,7 +616,6 @@ annotate_ecksum(nvlist_t *ereport, zio_bad_cksum_t *info, ...@@ -615,7 +616,6 @@ annotate_ecksum(nvlist_t *ereport, zio_bad_cksum_t *info,
if (badbuf == NULL || goodbuf == NULL) if (badbuf == NULL || goodbuf == NULL)
return (eip); return (eip);
ASSERT3U(nui64s, <=, UINT16_MAX);
ASSERT3U(size, ==, nui64s * sizeof (uint64_t)); ASSERT3U(size, ==, nui64s * sizeof (uint64_t));
ASSERT3U(size, <=, SPA_MAXBLOCKSIZE); ASSERT3U(size, <=, SPA_MAXBLOCKSIZE);
ASSERT3U(size, <=, UINT32_MAX); ASSERT3U(size, <=, UINT32_MAX);
......
...@@ -5817,8 +5817,11 @@ zfsdev_ioctl(struct file *filp, unsigned cmd, unsigned long arg) ...@@ -5817,8 +5817,11 @@ zfsdev_ioctl(struct file *filp, unsigned cmd, unsigned long arg)
} }
if (error == 0 && !(flag & FKIOCTL)) if (error == 0 && !(flag & FKIOCTL)) {
cookie = spl_fstrans_mark();
error = vec->zvec_secpolicy(zc, innvl, CRED()); error = vec->zvec_secpolicy(zc, innvl, CRED());
spl_fstrans_unmark(cookie);
}
if (error != 0) if (error != 0)
goto out; goto out;
......
../generic/zfs-dkms.spec.in
\ No newline at end of file
../generic/zfs.spec.in
\ No newline at end of file
1x256th-65536rc-4rs-1cs-4off.sh
\ No newline at end of file
256th-65536rc-4rs-1cs-4off.sh
\ No newline at end of file
16th-8192rc-4rs-1cs-4off.sh
\ No newline at end of file
4th-1024rc-4rs-1cs-4off.sh
\ No newline at end of file
1th-16rc-4rs-1cs-4off.sh
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment