mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
vol_id: add size= option
This commit is contained in:
parent
ee137da389
commit
22c89d3fd7
4
NEWS
4
NEWS
@ -1,3 +1,7 @@
|
||||
udev 130
|
||||
========
|
||||
Bugfixes.
|
||||
|
||||
udev 129
|
||||
========
|
||||
Fix recently introduced bug, which caused a compilation without large
|
||||
|
@ -1,5 +1,5 @@
|
||||
AC_INIT([udev],
|
||||
[129],
|
||||
[130],
|
||||
[kay.sievers@vrfy.org])
|
||||
AC_PREREQ(2.60)
|
||||
AC_CONFIG_SRCDIR([udev/udevd.c])
|
||||
@ -11,7 +11,7 @@ AC_PROG_LIBTOOL
|
||||
|
||||
dnl /* libudev version */
|
||||
LIBUDEV_LT_CURRENT=0
|
||||
LIBUDEV_LT_REVISION=1
|
||||
LIBUDEV_LT_REVISION=2
|
||||
LIBUDEV_LT_AGE=0
|
||||
AC_SUBST(LIBUDEV_LT_CURRENT)
|
||||
AC_SUBST(LIBUDEV_LT_REVISION)
|
||||
@ -19,7 +19,7 @@ AC_SUBST(LIBUDEV_LT_AGE)
|
||||
|
||||
dnl /* libvolume_id version */
|
||||
VOLID_LT_CURRENT=1
|
||||
VOLID_LT_REVISION=1
|
||||
VOLID_LT_REVISION=2
|
||||
VOLID_LT_AGE=0
|
||||
AC_SUBST(VOLID_LT_CURRENT)
|
||||
AC_SUBST(VOLID_LT_REVISION)
|
||||
|
@ -117,6 +117,7 @@ int main(int argc, char *argv[])
|
||||
{ "type", no_argument, NULL, 't' },
|
||||
{ "export", no_argument, NULL, 'x' },
|
||||
{ "skip-raid", no_argument, NULL, 's' },
|
||||
{ "size", required_argument, NULL, 'S' },
|
||||
{ "probe-all", no_argument, NULL, 'a' },
|
||||
{ "offset", optional_argument, NULL, 'o' },
|
||||
{ "debug", no_argument, NULL, 'd' },
|
||||
@ -136,7 +137,7 @@ int main(int argc, char *argv[])
|
||||
char label_safe[256];
|
||||
char label_enc[256];
|
||||
char uuid_enc[256];
|
||||
uint64_t size;
|
||||
uint64_t size = 0;
|
||||
int skip_raid = 0;
|
||||
int probe_all = 0;
|
||||
uint64_t offset = 0;
|
||||
@ -158,7 +159,7 @@ int main(int argc, char *argv[])
|
||||
while (1) {
|
||||
int option;
|
||||
|
||||
option = getopt_long(argc, argv, "lLutxsaodh", options, NULL);
|
||||
option = getopt_long(argc, argv, "lLutxsS:aodh", options, NULL);
|
||||
if (option == -1)
|
||||
break;
|
||||
|
||||
@ -189,6 +190,10 @@ int main(int argc, char *argv[])
|
||||
case 'a':
|
||||
probe_all = 1;
|
||||
break;
|
||||
case 'S':
|
||||
if (optarg[0] != '\0')
|
||||
size = strtoull(optarg, NULL, 0);
|
||||
break;
|
||||
case 'o':
|
||||
if (optarg[0] != '\0')
|
||||
offset = strtoull(optarg, NULL, 0);
|
||||
@ -203,6 +208,7 @@ int main(int argc, char *argv[])
|
||||
" --skip-raid don't probe for raid\n"
|
||||
" --probe-all find possibly conflicting signatures\n"
|
||||
" --offset=<bytes> probe at the given offset\n"
|
||||
" --size=<bytes> overwrite device size\n"
|
||||
" --debug print debug output to stderr\n"
|
||||
" --help\n\n");
|
||||
goto exit;
|
||||
@ -233,9 +239,11 @@ int main(int argc, char *argv[])
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if (ioctl(fd, BLKGETSIZE64, &size) != 0)
|
||||
size = 0;
|
||||
info(udev_ctx, "BLKGETSIZE64=%llu (%lluGB)\n", (unsigned long long)size, (unsigned long long)size >> 30);
|
||||
if (size == 0) {
|
||||
if (ioctl(fd, BLKGETSIZE64, &size) != 0)
|
||||
size = 0;
|
||||
info(udev_ctx, "BLKGETSIZE64=%llu (%lluGB)\n", (unsigned long long)size, (unsigned long long)size >> 30);
|
||||
}
|
||||
|
||||
/* try to drop all privileges before reading disk content */
|
||||
if (getuid() == 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user