zfs: Add a patch to fix discard data corruption
This commit is contained in:
parent
bbfd7f2d48
commit
4a672c87cd
28
pkgs/os-specific/linux/zfs/0.6.5-fix-corruption.patch
Normal file
28
pkgs/os-specific/linux/zfs/0.6.5-fix-corruption.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
From 96165264ad0afe7a5d440ef49f9712a188486266 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Richard Yao <ryao@gentoo.org>
|
||||||
|
Date: Fri, 18 Sep 2015 08:32:52 -0400
|
||||||
|
Subject: [PATCH] Discard on zvols should not exceed the length of a block
|
||||||
|
|
||||||
|
37f9dac592bf5889c3efb305c48ac39b4c7dd140 replaced the end-start
|
||||||
|
calculation with a cached value, but neglected to update it on discard
|
||||||
|
operations. This can cause us to discard data not requested, causing
|
||||||
|
data loss on zvols.
|
||||||
|
|
||||||
|
Reported-by: Richard Connon <richard.connon@zynstra.com>
|
||||||
|
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
||||||
|
---
|
||||||
|
module/zfs/zvol.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c
|
||||||
|
index 492f8ff..c5a8071 100644
|
||||||
|
--- a/module/zfs/zvol.c
|
||||||
|
+++ b/module/zfs/zvol.c
|
||||||
|
@@ -661,6 +661,7 @@ zvol_discard(struct bio *bio)
|
||||||
|
if (!(bio->bi_rw & REQ_SECURE)) {
|
||||||
|
start = P2ROUNDUP(start, zv->zv_volblocksize);
|
||||||
|
end = P2ALIGN(end, zv->zv_volblocksize);
|
||||||
|
+ size = end - start;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
@ -10,5 +10,8 @@ callPackage ./generic.nix (args // rec {
|
|||||||
sha256 = "1jqm2a9mldp4km5m454zszsw6p8hrqd7xrbf52pgp82kf5w3d6wz";
|
sha256 = "1jqm2a9mldp4km5m454zszsw6p8hrqd7xrbf52pgp82kf5w3d6wz";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./nix-build.patch ];
|
patches = [
|
||||||
|
./nix-build.patch
|
||||||
|
./0.6.5-fix-corruption.patch
|
||||||
|
];
|
||||||
})
|
})
|
||||||
|
@ -10,7 +10,10 @@ callPackage ./generic.nix (args // rec {
|
|||||||
sha256 = "1jqm2a9mldp4km5m454zszsw6p8hrqd7xrbf52pgp82kf5w3d6wz";
|
sha256 = "1jqm2a9mldp4km5m454zszsw6p8hrqd7xrbf52pgp82kf5w3d6wz";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./nix-build.patch ];
|
patches = [
|
||||||
|
./nix-build.patch
|
||||||
|
./0.6.5-fix-corruption.patch
|
||||||
|
];
|
||||||
|
|
||||||
spl = spl_git;
|
spl = spl_git;
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user