diff --git a/lustre/conf/99-lustre.rules b/lustre/conf/99-lustre.rules
index be1bcf55264b02fbe4b45c2df916946ad8cdab60..7a0c6c7ba5b7c0fb90b10dc9126d7109515f3cbf 100644
--- a/lustre/conf/99-lustre.rules
+++ b/lustre/conf/99-lustre.rules
@@ -1,4 +1 @@
 KERNEL=="obd", MODE="0666"
-
-# Ensure block devices re-added to the system allow for large writes (LU-9551)
-ACTION=="add|change", SUBSYSTEM=="block", RUN+="/usr/sbin/l_tunedisk /dev/%k"
diff --git a/lustre/utils/.gitignore b/lustre/utils/.gitignore
index b46005183a47303af33acf1a58cc40cff5c29116..18103f91b424a2898dfcc49d029fd9cbf494cf02 100644
--- a/lustre/utils/.gitignore
+++ b/lustre/utils/.gitignore
@@ -24,4 +24,3 @@
 /ll_decode_linkea
 /lhsmd_posix
 /lhsmtool_posix
-/l_tunedisk
diff --git a/lustre/utils/Makefile.am b/lustre/utils/Makefile.am
index 7909b611f05680f90c252dce4afca23dab000fec..4e3d03c25e2654d3d2e7cc5d91086836435db708 100644
--- a/lustre/utils/Makefile.am
+++ b/lustre/utils/Makefile.am
@@ -42,7 +42,7 @@ endif # TESTS
 
 if SERVER
 sbin_PROGRAMS += mkfs.lustre tunefs.lustre llverdev lr_reader lshowmount \
-		 ll_decode_filter_fid llog_reader l_tunedisk
+		 ll_decode_filter_fid llog_reader
 endif
 if LIBPTHREAD
 sbin_PROGRAMS += lhsmtool_posix
@@ -163,11 +163,6 @@ tunefs_lustre_LDFLAGS  := ${MNTMODLDFLAGS}
 tunefs_lustre_LDADD    := $(mkfs_lustre_LDADD)
 tunefs_lustre_DEPENDENCIES := $(mkfs_lustre_DEPENDENCIES)
 
-l_tunedisk_SOURCES = l_tunedisk.c mount_utils.c mount_utils.h $(GSSSRC)
-l_tunedisk_CPPFLAGS := ${MNTMODCFLAGS}
-l_tunedisk_LDFLAGS  := ${MNTMODLDFLAGS}
-l_tunedisk_LDADD    := $(mount_lustre_LDADD)
-
 l_getidentity_SOURCES = l_getidentity.c
 l_getidentity_LDADD := $(LIBPTLCTL)
 l_getidentity_DEPENDENCIES := $(LIBPTLCTL)
diff --git a/lustre/utils/l_tunedisk.c b/lustre/utils/l_tunedisk.c
deleted file mode 100644
index 47d977b184442912e9a2611c7aba87ba97ea70a5..0000000000000000000000000000000000000000
--- a/lustre/utils/l_tunedisk.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * GPL HEADER START
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 only,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License version 2 for more details (a copy is included
- * in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU General Public License
- * version 2 along with this program; If not, see
- * http://www.gnu.org/licenses/gpl-2.0.html
- *
- * GPL HEADER END
- */
-/*
- * Copyright (c) 2018, Intel Corporation.
- */
-
-
-#if HAVE_CONFIG_H
-#  include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "mount_utils.h"
-int	verbose;
-char	*progname;
-
-
-int main(int argc, char *const argv[])
-{
-	struct mount_opts mop = {
-		.mo_max_sectors_kb = -1
-	};
-	char real_path[PATH_MAX] = {'\0'};
-	unsigned int mount_type;
-	int ret;
-
-	verbose = 0;
-	progname = strrchr(argv[0], '/');
-	progname = progname ? progname + 1 : argv[0];
-
-	ret = osd_init();
-	if (ret != 0) {
-		vprint("%s: osd_init() failed to initialize: %d\n",
-		       progname, ret);
-		return ret;
-	}
-
-	/* device is last arg */
-	mop.mo_usource = argv[argc - 1];
-
-	mop.mo_source = realpath(mop.mo_usource, real_path);
-	if (mop.mo_source == NULL) {
-		vprint("%s: No realpath for %s\n", progname, mop.mo_usource);
-		goto out;
-	}
-
-	/* Check whether the disk has already been formatted by mkfs.lustre */
-	ret = osd_is_lustre(mop.mo_source, &mount_type);
-	if (ret == 0)
-		goto out;
-
-	ret = osd_tune_lustre(mop.mo_source, &mop);
-
-out:
-	osd_fini();
-	return ret;
-}