diff --git a/e2fsprogs/blkid/llseek.c b/e2fsprogs/blkid/llseek.c
index b5dde03..82388dd 100644
--- a/e2fsprogs/blkid/llseek.c
+++ b/e2fsprogs/blkid/llseek.c
@@ -19,70 +19,14 @@
 #if 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 defined(__alpha__) || defined(__ia64__)
-
-#define llseek lseek
-
-#else /* !__alpha__ && !__ia64__*/
-
-#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);
+#ifdef CONFIG_LFS
+# define my_llseek lseek64
 #else
-	retval = syscall(__NR__llseek, fd, ((unsigned long long) offset) >> 32,
-			 ((unsigned long long)offset) & 0xffffffff,
-			 &result, origin);
+# define my_llseek lseek
 #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)
 {
@@ -109,31 +53,3 @@
 	}
 	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 */
-
-
