blob: 93205a0a8040dc976e2775f122829a35437aaa1d [file] [log] [blame]
Upstream-Status: Pending
---
libparted/arch/linux.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
Index: parted-3.2/libparted/arch/linux.c
===================================================================
--- parted-3.2.orig/libparted/arch/linux.c
+++ parted-3.2/libparted/arch/linux.c
@@ -17,6 +17,8 @@
#define PROC_DEVICES_BUFSIZ 16384
+#include <linux/version.h>
+
#include <config.h>
#include <arch/linux.h>
#include <linux/blkpg.h>
@@ -1696,12 +1698,14 @@ linux_refresh_close (PedDevice* dev)
#if SIZEOF_OFF_T < 8
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
static _syscall5(int,_llseek,
unsigned int, fd,
unsigned long, offset_high,
unsigned long, offset_low,
loff_t*, result,
unsigned int, origin)
+#endif
loff_t
llseek (unsigned int fd, loff_t offset, unsigned int whence)
@@ -1709,11 +1713,20 @@ llseek (unsigned int fd, loff_t offset,
loff_t result;
int retval;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
retval = _llseek(fd,
((unsigned long long)offset) >> 32,
((unsigned long long)offset) & 0xffffffff,
&result,
whence);
+#else
+ retval = syscall(__NR__llseek, fd,
+ ((unsigned long long)offset) >> 32,
+ ((unsigned long long)offset) & 0xffffffff,
+ &result,
+ whence);
+#endif
+
return (retval==-1 ? (loff_t) retval : result);
}