]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libblkid: remove blkid_llseek()
authorKarel Zak <kzak@redhat.com>
Wed, 1 Jul 2020 13:47:20 +0000 (15:47 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 1 Jul 2020 13:47:20 +0000 (15:47 +0200)
Let's use libc lseek() everywhere like we use in another tools. It's
year 2020 ...

Addresses: https://github.com/karelzak/util-linux/issues/1083
Signed-off-by: Karel Zak <kzak@redhat.com>
configure.ac
libblkid/src/Makemodule.am
libblkid/src/blkidP.h
libblkid/src/llseek.c [deleted file]
libblkid/src/probe.c

index 543f2cc0ca169c75b7ab4cc5f14183ef193e00aa..77ac3634c19af056a69899a98ce9eed480395e4d 100644 (file)
@@ -438,20 +438,6 @@ AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
 
 AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
 
-AC_CHECK_DECL([llseek],
-       [AC_DEFINE([HAVE_LLSEEK_PROTOTYPE], [1],
-                       [Define to 1 if have llseek prototype])],
-       [],
-       [#include <unistd.h>])
-
-AC_CHECK_DECL([lseek64],
-       [AC_DEFINE([HAVE_LSEEK64_PROTOTYPE], [1],
-                       [Define to 1 if have lseek64 prototype])],
-       [],
-       [#define _LARGEFILE_SOURCE
-        #define _LARGEFILE64_SOURCE
-        #include <unistd.h>])
-
 AC_CHECK_DECL([environ],
        [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
                [Define to 1 if have **environ prototype])],
@@ -503,7 +489,6 @@ AC_CHECK_FUNCS([ \
        jrand48 \
        lchown \
        llseek \
-       lseek64 \
        mempcpy \
        mkostemp \
        nanosleep \
index 610ee4e3962343a7337a8cbd308ce5e06499d360..1aa6dfcef129887160f0208cf5bc3cd1f887bc13 100644 (file)
@@ -17,7 +17,6 @@ libblkid_la_SOURCES = \
        libblkid/src/encode.c \
        libblkid/src/evaluate.c \
        libblkid/src/getsize.c \
-       libblkid/src/llseek.c \
        libblkid/src/probe.c \
        libblkid/src/read.c \
        libblkid/src/resolve.c \
index 3219cafd51c1417d06ee3a436c25cd0564985707..699413eb26adde2370d7ace5af50b82e470103ea 100644 (file)
@@ -353,9 +353,6 @@ extern void blkid__scan_dir(char *, dev_t, struct dir_list **, char **)
 extern int blkid_driver_has_major(const char *drvname, int drvmaj)
                        __attribute__((warn_unused_result));
 
-/* lseek.c */
-extern blkid_loff_t blkid_llseek(int fd, blkid_loff_t offset, int whence);
-
 /* read.c */
 extern void blkid_read_cache(blkid_cache cache)
                        __attribute__((nonnull));
diff --git a/libblkid/src/llseek.c b/libblkid/src/llseek.c
deleted file mode 100644 (file)
index d5c494e..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * llseek.c -- stub calling the llseek system call
- *
- * Copyright (C) 1994, 1995, 1996, 1997 Theodore Ts'o.
- *
- * %Begin-Header%
- * This file may be redistributed under the terms of the
- * GNU Lesser General Public License.
- * %End-Header%
- */
-
-#ifndef _LARGEFILE_SOURCE
-# define _LARGEFILE_SOURCE
-#endif
-
-#ifndef _LARGEFILE64_SOURCE
-# define _LARGEFILE64_SOURCE
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef HAVE_ERRNO_H
-#include <errno.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef __MSDOS__
-#include <io.h>
-#endif
-
-#include "blkidP.h"
-
-#ifdef __linux__
-
-#if defined(HAVE_LSEEK64) && defined(HAVE_LSEEK64_PROTOTYPE)
-
-#define my_llseek lseek64
-
-#elif defined(HAVE_LLSEEK)
-#include <syscall.h>
-
-#ifndef HAVE_LLSEEK_PROTOTYPE
-extern long long llseek(int fd, long long offset, int origin);
-#endif
-
-#define my_llseek llseek
-
-#else  /* ! HAVE_LLSEEK */
-
-#if SIZEOF_LONG == SIZEOF_LONG_LONG
-
-#define llseek lseek
-
-#else /* SIZEOF_LONG != SIZEOF_LONG_LONG */
-
-#include <linux/unistd.h>
-
-#ifndef __NR__llseek
-#define __NR__llseek            140
-#endif
-
-#ifndef __i386__
-static int _llseek(unsigned int, unsigned long, unsigned long,
-                  blkid_loff_t *, unsigned int);
-
-static _syscall5(int, _llseek, unsigned int, fd, unsigned long, offset_high,
-                unsigned long, offset_low, blkid_loff_t *, result,
-                unsigned int, origin)
-#endif
-
-static blkid_loff_t my_llseek(int fd, blkid_loff_t offset, int origin)
-{
-       blkid_loff_t result;
-       int retval;
-
-#ifndef __i386__
-       retval = _llseek(fd, ((unsigned long long) offset) >> 32,
-                        ((unsigned long long)offset) & 0xffffffff,
-                        &result, origin);
-#else
-       retval = syscall(__NR__llseek, fd, ((unsigned long long) offset) >> 32,
-                        ((unsigned long long)offset) & 0xffffffff,
-                        &result, origin);
-#endif
-       return (retval == -1 ? (blkid_loff_t) retval : result);
-}
-
-#endif /* __alpha__ || __ia64__ */
-
-#endif /* HAVE_LLSEEK */
-
-blkid_loff_t blkid_llseek(int fd, blkid_loff_t offset, int whence)
-{
-       blkid_loff_t result;
-       static int do_compat = 0;
-
-       if ((sizeof(off_t) >= sizeof(blkid_loff_t)) ||
-           (offset < ((blkid_loff_t) 1 << ((sizeof(off_t)*8) -1))))
-               return lseek(fd, (off_t) offset, whence);
-
-       if (do_compat) {
-               errno = EOVERFLOW;
-               return -1;
-       }
-
-       result = my_llseek(fd, offset, whence);
-       if (result == -1 && errno == ENOSYS) {
-               /*
-                * Just in case this code runs on top of an old kernel
-                * which does not support the llseek system call
-                */
-               do_compat++;
-               errno = EOVERFLOW;
-       }
-       return result;
-}
-
-#else /* !linux */
-
-#ifndef EOVERFLOW
-#ifdef EXT2_ET_INVALID_ARGUMENT
-#define EOVERFLOW EXT2_ET_INVALID_ARGUMENT
-#else
-#define EOVERFLOW 112
-#endif
-#endif
-
-blkid_loff_t blkid_llseek(int fd, blkid_loff_t offset, int origin)
-{
-#if defined(HAVE_LSEEK64) && defined(HAVE_LSEEK64_PROTOTYPE)
-       return lseek64 (fd, offset, origin);
-#else
-       if ((sizeof(off_t) < sizeof(blkid_loff_t)) &&
-           (offset >= ((blkid_loff_t) 1 << ((sizeof(off_t)*8) - 1)))) {
-               errno = EOVERFLOW;
-               return -1;
-       }
-       return lseek(fd, (off_t) offset, origin);
-#endif
-}
-
-#endif /* linux */
-
-
index e148fddc01898193c0af4cf199bb32456baa4075..1992677cc28e956c97b7fab7fc51f3a59b2a4e82 100644 (file)
@@ -535,7 +535,7 @@ static struct blkid_bufinfo *read_buffer(blkid_probe pr, uint64_t real_off, uint
        ssize_t ret;
        struct blkid_bufinfo *bf = NULL;
 
-       if (blkid_llseek(pr->fd, real_off, SEEK_SET) < 0) {
+       if (lseek(pr->fd, real_off, SEEK_SET) == (off_t) -1) {
                errno = 0;
                return NULL;
        }
@@ -796,7 +796,7 @@ static int is_sector_readable(int fd, uint64_t sector)
        char buf[512];
        ssize_t sz;
 
-       if (blkid_llseek(fd, sector * 512, SEEK_SET) < 0)
+       if (lseek(fd, sector * 512, SEEK_SET) == (off_t) -1)
                goto failed;
 
        sz = read(fd, buf, sizeof(buf));
@@ -1190,7 +1190,7 @@ int blkid_do_wipe(blkid_probe pr, int dryrun)
 {
        const char *off = NULL;
        size_t len = 0;
-       uint64_t offset, magoff, l;
+       uint64_t offset, magoff;
        char buf[BUFSIZ];
        int fd, rc = 0;
        struct blkid_chain *chn;
@@ -1230,8 +1230,7 @@ int blkid_do_wipe(blkid_probe pr, int dryrun)
            "do_wipe [offset=0x%"PRIx64" (%"PRIu64"), len=%zu, chain=%s, idx=%d, dryrun=%s]\n",
            offset, offset, len, chn->driver->name, chn->idx, dryrun ? "yes" : "not"));
 
-       l = blkid_llseek(fd, offset, SEEK_SET);
-       if ((blkid_loff_t)l == (off_t) -1)
+       if (lseek(fd, offset, SEEK_SET) == (off_t) -1)
                return -1;
 
        memset(buf, 0, len);