On Wed, Oct 21, 2020 at 08:04:15AM -0400, Jason Andryuk wrote:
From: David Milburn dmilburn@redhat.com
[ Upstream commit ce4cc3133dc72c31bd49ddcf22d0f9eeff47a761 ]
The write zeros command does not work with 4k range.
bash-4.4# ./blkdiscard /dev/nvme0n1p2 bash-4.4# strace -efallocate xfs_io -c "fzero 536895488 2048" /dev/nvme0n1p2 fallocate(3, FALLOC_FL_ZERO_RANGE, 536895488, 2048) = 0 +++ exited with 0 +++ bash-4.4# dd bs=1 if=/dev/nvme0n1p2 skip=536895488 count=512 | hexdump -C 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000200
bash-4.4# ./blkdiscard /dev/nvme0n1p2 bash-4.4# strace -efallocate xfs_io -c "fzero 536895488 4096" /dev/nvme0n1p2 fallocate(3, FALLOC_FL_ZERO_RANGE, 536895488, 4096) = 0 +++ exited with 0 +++ bash-4.4# dd bs=1 if=/dev/nvme0n1p2 skip=536895488 count=512 | hexdump -C 00000000 5c 61 5c b0 96 21 1b 5e 85 0c 07 32 9c 8c eb 3c |\a..!.^...2...<| 00000010 4a a2 06 ca 67 15 2d 8e 29 8d a8 a0 7e 46 8c 62 |J...g.-.)...~F.b| 00000020 bb 4c 6c c1 6b f5 ae a5 e4 a9 bc 93 4f 60 ff 7a |.Ll.k.......O`.z|
Reported-by: Eric Sandeen esandeen@redhat.com Signed-off-by: David Milburn dmilburn@redhat.com Tested-by: Eric Sandeen sandeen@redhat.com Signed-off-by: Christoph Hellwig hch@lst.de [ Fix-up for 5.4 since NVME_QUIRK_NO_TEMP_THRESH_CHANGE doesn't exist ] Signed-off-by: Jason Andryuk jandryuk@gmail.com
Applicable to 5.4. NVME_QUIRK_DISABLE_WRITE_ZEROES was introduced in 5.0. The original commit needs a fix for 5.4 because NVME_QUIRK_NO_TEMP_THRESH_CHANGE doesn't exist - it looks like it was added in 5.5.
Observed with mke2fs failures on 5.4 wih Intel 600P.
Now queued up, thanks.
greg k-h