[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
do_fallocate with (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE) is not ne
From: |
ChangLimin |
Subject: |
do_fallocate with (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE) is not necessary when allocate a new qcow2 cluster |
Date: |
Tue, 22 Dec 2020 08:23:49 +0800 |
for qcow2 file in ocfs2 filesystem, do_fallocate with (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE)
will be called when allocate a new cluster. It's not necessary and also cause data error.
1. create a ocfs2 cluster and `mkfs.ocfs2 -b 4k -C 1M -N 2 /dev/sdb1` then `mount /dev/sdb1 /mnt`
2. qemu-img create -f qcow2 -o cluster_size=256k /mnt/test.img 1G
3. attach /mnt/test.img to a linux vm as vdb
4. in vm, `dd if=/root/foo of=/dev/vdb bs=4k count=1`
5. `hexdump -C /dev/vdb -n 4096` the output is not identical to the file /root/foo
After remove do_fallocate with (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE) in handle_aiocb_write_zeroes ,
it's good.
Chang Limin
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- do_fallocate with (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE) is not necessary when allocate a new qcow2 cluster,
ChangLimin <=