aboutsummaryrefslogtreecommitdiff
path: root/package/util-linux/0001-blkdiscard-use-O_EXCL-add-force.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/util-linux/0001-blkdiscard-use-O_EXCL-add-force.patch')
-rw-r--r--package/util-linux/0001-blkdiscard-use-O_EXCL-add-force.patch86
1 files changed, 0 insertions, 86 deletions
diff --git a/package/util-linux/0001-blkdiscard-use-O_EXCL-add-force.patch b/package/util-linux/0001-blkdiscard-use-O_EXCL-add-force.patch
deleted file mode 100644
index 0ecb867029..0000000000
--- a/package/util-linux/0001-blkdiscard-use-O_EXCL-add-force.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 34fed3ff1740aded9c2aae6b5d67a4eb696f738e Mon Sep 17 00:00:00 2001
-From: Karel Zak <kzak@redhat.com>
-Date: Thu, 9 Jan 2020 11:03:51 +0100
-Subject: [PATCH] blkdiscard: use O_EXCL, add --force
-
-Let's make it more robust and safe. O_EXCL is an elegant way how to avoid
-unwanted discard on mounted device.
-
-Addresses: https://github.com/karelzak/util-linux/issues/915
-Signed-off-by: Karel Zak <kzak@redhat.com>
-Signed-off-by: Carlos Santos <unixmania@gmail.com>
----
- sys-utils/blkdiscard.8 | 5 +++++
- sys-utils/blkdiscard.c | 11 ++++++++---
- 2 files changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/sys-utils/blkdiscard.8 b/sys-utils/blkdiscard.8
-index 1f3a32be9..98c6f36a9 100644
---- a/sys-utils/blkdiscard.8
-+++ b/sys-utils/blkdiscard.8
-@@ -36,6 +36,11 @@ MiB (=1024*1024), and so on for GiB, TiB, PiB, EiB, ZiB and YiB (the "iB" is
- optional, e.g., "K" has the same meaning as "KiB") or the suffixes
- KB (=1000), MB (=1000*1000), and so on for GB, TB, PB, EB, ZB and YB.
- .TP
-+.BR \-f , " \-\-force"
-+Disable all checking. Since v2.36 the block device is open in exclusive mode (O_EXCL)
-+by default to avoid collision with mounted filesystem or another kernel subsystem.
-+The force option disables the exclusive access mode.
-+.TP
- .BR \-o , " \-\-offset \fIoffset"
- Byte offset into the device from which to start discarding. The provided value
- will be aligned to the device sector size. The default value is zero.
-diff --git a/sys-utils/blkdiscard.c b/sys-utils/blkdiscard.c
-index f9ba5e468..589974f9c 100644
---- a/sys-utils/blkdiscard.c
-+++ b/sys-utils/blkdiscard.c
-@@ -88,6 +88,7 @@ static void __attribute__((__noreturn__)) usage(void)
- fputs(_("Discard the content of sectors on a device.\n"), out);
-
- fputs(USAGE_OPTIONS, out);
-+ fputs(_(" -f, --force disable all checking\n"), out);
- fputs(_(" -o, --offset <num> offset in bytes to discard from\n"), out);
- fputs(_(" -l, --length <num> length of bytes to discard from the offset\n"), out);
- fputs(_(" -p, --step <num> size of the discard iterations within the offset\n"), out);
-@@ -106,7 +107,7 @@ static void __attribute__((__noreturn__)) usage(void)
- int main(int argc, char **argv)
- {
- char *path;
-- int c, fd, verbose = 0, secsize;
-+ int c, fd, verbose = 0, secsize, force = 0;
- uint64_t end, blksize, step, range[2], stats[2];
- struct stat sb;
- struct timeval now, last;
-@@ -116,6 +117,7 @@ int main(int argc, char **argv)
- { "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
- { "offset", required_argument, NULL, 'o' },
-+ { "force", no_argument, NULL, 'f' },
- { "length", required_argument, NULL, 'l' },
- { "step", required_argument, NULL, 'p' },
- { "secure", no_argument, NULL, 's' },
-@@ -133,8 +135,11 @@ int main(int argc, char **argv)
- range[1] = ULLONG_MAX;
- step = 0;
-
-- while ((c = getopt_long(argc, argv, "hVsvo:l:p:z", longopts, NULL)) != -1) {
-+ while ((c = getopt_long(argc, argv, "hfVsvo:l:p:z", longopts, NULL)) != -1) {
- switch(c) {
-+ case 'f':
-+ force = 1;
-+ break;
- case 'l':
- range[1] = strtosize_or_err(optarg,
- _("failed to parse length"));
-@@ -176,7 +181,7 @@ int main(int argc, char **argv)
- errtryhelp(EXIT_FAILURE);
- }
-
-- fd = open(path, O_WRONLY);
-+ fd = open(path, O_WRONLY | (force ? 0 : O_EXCL));
- if (fd < 0)
- err(EXIT_FAILURE, _("cannot open %s"), path);
-
---
-2.18.2
-