diff --git a/utils/fio/Makefile b/utils/fio/Makefile
index 9c2779290..d7b6c96b2 100644
--- a/utils/fio/Makefile
+++ b/utils/fio/Makefile
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fio
-PKG_VERSION:=3.19
-PKG_RELEASE:=2
+PKG_VERSION:=3.20
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://brick.kernel.dk/snaps
-PKG_HASH:=4b6db7eaee26d6fd33bf210eb73b6d37f5d45adcc88726866ad030565f3ccc06
+PKG_HASH:=87a539ecebce3d8281ff9c653e9978302f91c72534273e85ef37a980ac5398d7
 
 PKG_MAINTAINER:=
 PKG_LICENSE:=GPL-2.0-or-later
diff --git a/utils/fio/patches/010-rand.patch b/utils/fio/patches/010-rand.patch
deleted file mode 100644
index 46aa39f5b..000000000
--- a/utils/fio/patches/010-rand.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/t/io_uring.c
-+++ b/t/io_uring.c
-@@ -63,7 +63,6 @@ struct file {
- struct submitter {
- 	pthread_t thread;
- 	int ring_fd;
--	struct drand48_data rand;
- 	struct io_sq_ring sq_ring;
- 	struct io_uring_sqe *sqes;
- 	struct io_cq_ring cq_ring;
-@@ -170,7 +169,7 @@ static void init_io(struct submitter *s, unsigned index)
- 	}
- 	f->pending_ios++;
- 
--	lrand48_r(&s->rand, &r);
-+	r = lrand48();
- 	offset = (r % (f->max_blocks - 1)) * BS;
- 
- 	if (register_files) {
-@@ -286,7 +285,7 @@ static void *submitter_fn(void *data)
- 
- 	printf("submitter=%d\n", gettid());
- 
--	srand48_r(pthread_self(), &s->rand);
-+	srand48(pthread_self());
- 
- 	prepped = 0;
- 	do {
diff --git a/utils/fio/patches/020-vasprintf.patch b/utils/fio/patches/020-vasprintf.patch
deleted file mode 100644
index 234c958ca..000000000
--- a/utils/fio/patches/020-vasprintf.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/configure
-+++ b/configure
-@@ -892,7 +892,8 @@ cat > $TMPC << EOF
- 
- int main(int argc, char **argv)
- {
--  return vasprintf(NULL, "%s", NULL) == 0;
-+  va_list ap;
-+  return vasprintf(NULL, "%s", ap) == 0;
- }
- EOF
- if compile_prog "" "" "have_vasprintf"; then