OSDN Git Service

file-posix: allow -EBUSY errors during write zeros on raw block devices
authorMaxim Levitsky <mlevitsk@redhat.com>
Wed, 11 Nov 2020 15:39:12 +0000 (17:39 +0200)
committerKevin Wolf <kwolf@redhat.com>
Tue, 17 Nov 2020 11:26:48 +0000 (12:26 +0100)
On Linux, fallocate(fd, FALLOC_FL_PUNCH_HOLE) when it is used on a block device,
without O_DIRECT can return -EBUSY if it races with another write to the same page.

Since this is rare and discard is not a critical operation, ignore this error

Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20201111153913.41840-2-mlevitsk@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/file-posix.c

index c63926d..d5fd1db 100644 (file)
@@ -1698,6 +1698,7 @@ static int handle_aiocb_write_zeroes_unmap(void *opaque)
     switch (ret) {
     case -ENOTSUP:
     case -EINVAL:
+    case -EBUSY:
         break;
     default:
         return ret;