losetup: implement -c
function old new delta losetup_main 422 449 +27 packed_usage 33243 33264 +21 get_next_block 1677 1681 +4 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/0 up/down: 52/0) Total: 52 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
1115e40c88
commit
309f5e3775
@ -20,10 +20,11 @@
|
|||||||
//kbuild:lib-$(CONFIG_LOSETUP) += losetup.o
|
//kbuild:lib-$(CONFIG_LOSETUP) += losetup.o
|
||||||
|
|
||||||
//usage:#define losetup_trivial_usage
|
//usage:#define losetup_trivial_usage
|
||||||
//usage: "[-r] [-o OFS] {-f|LOOPDEV} FILE - associate loop devices\n"
|
//usage: "[-r] [-o OFS] {-f|LOOPDEV} FILE: associate loop devices\n"
|
||||||
//usage: " losetup -d LOOPDEV - disassociate\n"
|
//usage: " losetup -c LOOPDEV: reread file size\n"
|
||||||
//usage: " losetup -a - show status\n"
|
//usage: " losetup -d LOOPDEV: disassociate\n"
|
||||||
//usage: " losetup -f - show next free loop device"
|
//usage: " losetup -a: show status\n"
|
||||||
|
//usage: " losetup -f: show next free loop device"
|
||||||
//usage:#define losetup_full_usage "\n\n"
|
//usage:#define losetup_full_usage "\n\n"
|
||||||
//usage: " -o OFS Start OFS bytes into FILE"
|
//usage: " -o OFS Start OFS bytes into FILE"
|
||||||
//usage: "\n -r Read-only"
|
//usage: "\n -r Read-only"
|
||||||
@ -50,14 +51,15 @@ int losetup_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
char *opt_o;
|
char *opt_o;
|
||||||
char dev[LOOP_NAMESIZE];
|
char dev[LOOP_NAMESIZE];
|
||||||
enum {
|
enum {
|
||||||
OPT_d = (1 << 0),
|
OPT_c = (1 << 0),
|
||||||
OPT_o = (1 << 1),
|
OPT_d = (1 << 1),
|
||||||
OPT_f = (1 << 2),
|
OPT_o = (1 << 2),
|
||||||
OPT_a = (1 << 3),
|
OPT_f = (1 << 3),
|
||||||
OPT_r = (1 << 4), /* must be last */
|
OPT_a = (1 << 4),
|
||||||
|
OPT_r = (1 << 5),
|
||||||
};
|
};
|
||||||
|
|
||||||
opt = getopt32(argv, "^" "do:far" "\0" "?2:d--ofar:a--ofr", &opt_o);
|
opt = getopt32(argv, "^" "cdo:far" "\0" "?2:d--ofar:a--ofr", &opt_o);
|
||||||
argv += optind;
|
argv += optind;
|
||||||
|
|
||||||
/* LOOPDEV */
|
/* LOOPDEV */
|
||||||
@ -73,6 +75,16 @@ int losetup_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -c LOOPDEV */
|
||||||
|
if (opt == OPT_c && argv[0]) {
|
||||||
|
int fd = xopen(argv[0], O_RDONLY);
|
||||||
|
#ifndef LOOP_SET_CAPACITY
|
||||||
|
# define LOOP_SET_CAPACITY 0x4C07
|
||||||
|
#endif
|
||||||
|
xioctl(fd, LOOP_SET_CAPACITY, /*ignored:*/0);
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
/* -d LOOPDEV */
|
/* -d LOOPDEV */
|
||||||
if (opt == OPT_d && argv[0]) {
|
if (opt == OPT_d && argv[0]) {
|
||||||
if (del_loop(argv[0]))
|
if (del_loop(argv[0]))
|
||||||
|
Loading…
Reference in New Issue
Block a user