forked from brl/citadel
56 lines
1.5 KiB
Diff
56 lines
1.5 KiB
Diff
|
Upstream-Status: Pending
|
||
|
|
||
|
---
|
||
|
libparted/arch/linux.c | 13 +++++++++++++
|
||
|
1 file changed, 13 insertions(+)
|
||
|
|
||
|
Index: parted-1.9.0/libparted/arch/linux.c
|
||
|
===================================================================
|
||
|
--- parted-1.9.0.orig/libparted/arch/linux.c 2009-07-23 18:52:08.000000000 +0100
|
||
|
+++ parted-1.9.0/libparted/arch/linux.c 2010-02-02 14:14:16.523904768 +0000
|
||
|
@@ -17,6 +17,8 @@
|
||
|
|
||
|
#define PROC_DEVICES_BUFSIZ 16384
|
||
|
|
||
|
+#include <linux/version.h>
|
||
|
+
|
||
|
#include <config.h>
|
||
|
#include <arch/linux.h>
|
||
|
|
||
|
@@ -1477,12 +1479,14 @@
|
||
|
|
||
|
#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)
|
||
|
@@ -1490,11 +1494,20 @@
|
||
|
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);
|
||
|
}
|
||
|
|