[klibc] [klibc:master] losetup: Delete fallbacks to LOOP_{GET, SET}_STATUS
klibc-bot for Ben Hutchings
ben at decadent.org.uk
Tue Nov 5 14:42:11 PST 2019
Commit-ID: 209676c9a3d057c0eba48f633eb541b17c7d1eba
Gitweb: http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=209676c9a3d057c0eba48f633eb541b17c7d1eba
Author: Ben Hutchings <ben at decadent.org.uk>
AuthorDate: Tue, 5 Nov 2019 00:33:37 +0000
Committer: Ben Hutchings <ben at decadent.org.uk>
CommitDate: Tue, 5 Nov 2019 19:55:37 +0000
[klibc] losetup: Delete fallbacks to LOOP_{GET,SET}_STATUS
The LOOP_{GET,SET}_STATUS64 ioctls were added in Linux 2.5.68, and
klibc is not intended to support old kernel versions.
Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
---
usr/utils/losetup.c | 65 ++---------------------------------------------------
1 file changed, 2 insertions(+), 63 deletions(-)
diff --git a/usr/utils/losetup.c b/usr/utils/losetup.c
index 1f50a001..5d328138 100644
--- a/usr/utils/losetup.c
+++ b/usr/utils/losetup.c
@@ -33,39 +33,8 @@ void xstrncpy(char *dest, const char *src, size_t n)
}
-static int loop_info64_to_old(const struct loop_info64 *info64, struct loop_info *info)
-{
- memset(info, 0, sizeof(*info));
- info->lo_number = info64->lo_number;
- info->lo_device = info64->lo_device;
- info->lo_inode = info64->lo_inode;
- info->lo_rdevice = info64->lo_rdevice;
- info->lo_offset = info64->lo_offset;
- info->lo_encrypt_type = info64->lo_encrypt_type;
- info->lo_encrypt_key_size = info64->lo_encrypt_key_size;
- info->lo_flags = info64->lo_flags;
- info->lo_init[0] = info64->lo_init[0];
- info->lo_init[1] = info64->lo_init[1];
- if (info->lo_encrypt_type == LO_CRYPT_CRYPTOAPI)
- memcpy(info->lo_name, info64->lo_crypt_name, LO_NAME_SIZE);
- else
- memcpy(info->lo_name, info64->lo_file_name, LO_NAME_SIZE);
- memcpy(info->lo_encrypt_key, info64->lo_encrypt_key, LO_KEY_SIZE);
-
- /* error in case values were truncated */
- if (info->lo_device != info64->lo_device ||
- info->lo_rdevice != info64->lo_rdevice ||
- info->lo_inode != info64->lo_inode ||
- info->lo_offset != info64->lo_offset)
- return -EOVERFLOW;
-
- return 0;
-}
-
-
static int show_loop(char *device)
{
- struct loop_info loopinfo;
struct loop_info64 loopinfo64;
int fd, errsv;
@@ -106,23 +75,6 @@ static int show_loop(char *device)
return 0;
}
- if (ioctl(fd, LOOP_GET_STATUS, &loopinfo) == 0) {
- printf ("%s: [%04x]:%ld (%s)",
- device, loopinfo.lo_device, loopinfo.lo_inode,
- loopinfo.lo_name);
-
- if (loopinfo.lo_offset)
- printf(", offset %d", loopinfo.lo_offset);
-
- if (loopinfo.lo_encrypt_type)
- printf(", encryption type %d\n",
- loopinfo.lo_encrypt_type);
-
- printf("\n");
- close (fd);
- return 0;
- }
-
errsv = errno;
fprintf(stderr, "loop: can't get info on device %s: %s\n",
device, strerror (errsv));
@@ -296,21 +248,8 @@ int set_loop(const char *device, const char *file, unsigned long long offset,
close (ffd);
i = ioctl(fd, LOOP_SET_STATUS64, &loopinfo64);
- if (i) {
- struct loop_info loopinfo;
- int errsv = errno;
-
- i = loop_info64_to_old(&loopinfo64, &loopinfo);
- if (i) {
- errno = errsv;
- perror("ioctl: LOOP_SET_STATUS64");
- } else {
- i = ioctl(fd, LOOP_SET_STATUS, &loopinfo);
- if (i)
- perror("ioctl: LOOP_SET_STATUS");
- }
- memset(&loopinfo, 0, sizeof(loopinfo));
- }
+ if (i)
+ perror("ioctl: LOOP_SET_STATUS64");
memset(&loopinfo64, 0, sizeof(loopinfo64));
if (i) {
More information about the klibc
mailing list