From: Petr Vorel <pvorel@suse.cz>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH 1/1] tst_mkfs: Add -I option to mkfs.vfat
Date: Wed, 31 Mar 2021 09:58:33 +0200 [thread overview]
Message-ID: <YGQrqdryrb+4f5UO@pevik> (raw)
In-Reply-To: <87a6qkom1p.fsf@suse.de>
Hi,
instead of using -I I tried Martin Doucha's suggestion to rescan partition table
with ioctl BLKRRPART. But I get EINVAL. Not sure if O_RDONLY is a proper flag,
but I also tried to open with args used for manipulating loop (open(path,
O_CREAT|O_WRONLY|O_TRUNC, S_IRUSR|S_IWUSR)) and a same issue. Happens on recent
kernel and very old kernel 3.16.
I wonder if I have wrong flags or BLKRRPART is just not supported on loop
devices. Looking into kernel sources it's this part blkdev_reread_part():
if (!disk_part_scan_enabled(bdev->bd_disk) || bdev_is_partition(bdev))
return -EINVAL;
Kind regards,
Petr
diff --git lib/tst_mkfs.c lib/tst_mkfs.c
index 736324f04..06fafcd18 100644
--- lib/tst_mkfs.c
+++ lib/tst_mkfs.c
@@ -15,6 +15,10 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <sys/ioctl.h>
+#include <sys/mount.h>
+#include <fcntl.h>
+
#include "test.h"
#include "ltp_priv.h"
#include "tst_mkfs.h"
@@ -26,7 +30,7 @@ void tst_mkfs_(const char *file, const int lineno, void (cleanup_fn)(void),
const char *dev, const char *fs_type,
const char *const fs_opts[], const char *const extra_opts[])
{
- int i, pos = 1, ret;
+ int fd, i, pos = 1, ret;
char mkfs[64];
const char *argv[OPTS_MAX] = {mkfs};
char fs_opts_str[1024] = "";
@@ -93,6 +97,13 @@ void tst_mkfs_(const char *file, const int lineno, void (cleanup_fn)(void),
"tst_clear_device() failed");
}
+ /* force kernel to reread partition table */
+ fd = open(dev, O_RDONLY);
+ tst_resm_(file, lineno, TINFO, "dev: %s, fd: %d", dev, fd);
+ ret = ioctl(fd, BLKRRPART);
+ tst_resm_(file, lineno, TINFO, "rc: %d", ret);
+ close(fd);
+
tst_resm_(file, lineno, TINFO,
"Formatting %s with %s opts='%s' extra opts='%s'",
dev, fs_type, fs_opts_str, extra_opts_str);
prev parent reply other threads:[~2021-03-31 7:58 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-29 14:57 [LTP] [PATCH 1/1] tst_mkfs: Add -I option to mkfs.vfat Petr Vorel
2021-03-30 10:00 ` Richard Palethorpe
2021-03-30 10:36 ` Martin Doucha
2021-03-30 12:25 ` Petr Vorel
2021-03-30 12:36 ` Richard Palethorpe
2021-03-31 7:58 ` Petr Vorel [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YGQrqdryrb+4f5UO@pevik \
--to=pvorel@suse.cz \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.