New upstream version 3.1.10
This commit is contained in:
parent
606cc230a4
commit
6653c03cdc
2
.gitignore
vendored
2
.gitignore
vendored
@ -9,3 +9,5 @@ xfsdump-3.0.4.tar.gz
|
||||
/xfsdump-3.1.6.tar.gz
|
||||
/xfsdump-3.1.8.tar.xz
|
||||
/xfsdump-3.1.9.tar.xz
|
||||
/xfsdump-3.1.10.tar.sign
|
||||
/xfsdump-3.1.10.tar.xz
|
||||
|
185
20AE1692E13DDEE0.asc
Normal file
185
20AE1692E13DDEE0.asc
Normal file
@ -0,0 +1,185 @@
|
||||
pub rsa4096 2011-11-03 [SC]
|
||||
2B8185919E8D248981869DED20AE1692E13DDEE0
|
||||
uid Eric R. Sandeen <sandeen@sandeen.net>
|
||||
uid Eric R. Sandeen <sandeen@redhat.com>
|
||||
sub rsa4096 2011-11-03 [E]
|
||||
048CA40C8F5B5507E3A6CD6BE2C297037B26BEB4
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
4NMMCC8gkONe4tek
|
||||
=EFoy
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
3
sources
3
sources
@ -1 +1,2 @@
|
||||
SHA512 (xfsdump-3.1.9.tar.xz) = e8f9811d16fc06ab49fe2c109de0546c989575eca6e68b579c6d219a745f935952020069f58b357c5c87b944c5097ca2894466d328d09f06beb8a55880142351
|
||||
SHA512 (xfsdump-3.1.10.tar.sign) = abd8cef57d1f47337c9f4b3b8981ddd4108bf649decfb0df46f61fecf5663effa6fb0b85d40ed876220b6a06b0ecb546e7fa39a437b6b1e56f8eb8b6ae89a709
|
||||
SHA512 (xfsdump-3.1.10.tar.xz) = 8a1b671b22fffb5d2eac45d5fd7a2948c137b3ca21fde06779cff13fc6eaa27286876f56715f2eeb82ce107278d763028474260a54a8fec722e5a5d7c5875c9a
|
||||
|
@ -1,284 +0,0 @@
|
||||
commit b1d6979f1fae82acc79d27cf0add4d55da6d83cc
|
||||
Author: Kyle McMartin <kmcmarti@redhat.com>
|
||||
Date: Tue Apr 8 10:35:34 2014 +1000
|
||||
|
||||
remove ancient sys_getdents code paths
|
||||
|
||||
Everything since 2.4.1 has supported getdents64... so let's remove all
|
||||
the legacy code paths to handle it and just rely on getdents64 existing
|
||||
everywhere. Also re-indent the function to not look entirely awful.
|
||||
|
||||
Signed-off-by: Kyle McMartin <kmcmarti@redhat.com>
|
||||
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
||||
Signed-off-by: Dave Chinner <david@fromorbit.com>
|
||||
|
||||
diff --git a/common/getdents.c b/common/getdents.c
|
||||
index 49d0d03..957bb5a 100644
|
||||
--- a/common/getdents.c
|
||||
+++ b/common/getdents.c
|
||||
@@ -35,47 +35,13 @@
|
||||
|
||||
#include <linux/posix_types.h>
|
||||
|
||||
-/* For Linux we need a special version of this file since the
|
||||
- definition of `struct dirent' is not the same for the kernel and
|
||||
- the libc. There is one additional field which might be introduced
|
||||
- in the kernel structure in the future.
|
||||
-
|
||||
- Here is the kernel definition of `struct dirent' as of 2.1.20: */
|
||||
-
|
||||
-struct kernel_dirent
|
||||
- {
|
||||
- long int d_ino;
|
||||
- __kernel_off_t d_off;
|
||||
- unsigned short int d_reclen;
|
||||
- char d_name[256];
|
||||
- };
|
||||
-
|
||||
-struct kernel_dirent64
|
||||
- {
|
||||
- uint64_t d_ino;
|
||||
- int64_t d_off;
|
||||
- unsigned short int d_reclen;
|
||||
- unsigned char d_type;
|
||||
- char d_name[256];
|
||||
- };
|
||||
-
|
||||
-#define DIRENT_SET_DP_INO(dp, value) (dp)->d_ino = (value)
|
||||
-
|
||||
-#define __set_errno(e) (errno = (e))
|
||||
-
|
||||
-int __have_no_getdents64;
|
||||
-
|
||||
-#ifdef __NR_getdents64
|
||||
-# define __SYS_GETDENTS64(fd, buf, len) (syscall(SYS_getdents64, fd, buf, len))
|
||||
-#else
|
||||
-# define __SYS_GETDENTS64(fd, buf, len) ({ __set_errno(ENOSYS); -1; })
|
||||
-#endif
|
||||
-
|
||||
-#ifdef __NR_getdents
|
||||
-# define __SYS_GETDENTS(fd, buf, len) (syscall(SYS_getdents, fd, buf, len))
|
||||
-#else
|
||||
-# define __SYS_GETDENTS(fd, buf, len) ({ __set_errno(ENOSYS); -1; })
|
||||
-#endif
|
||||
+struct kernel_dirent64 {
|
||||
+ uint64_t d_ino;
|
||||
+ int64_t d_off;
|
||||
+ unsigned short int d_reclen;
|
||||
+ unsigned char d_type;
|
||||
+ char d_name[256];
|
||||
+};
|
||||
|
||||
/* The problem here is that we cannot simply read the next NBYTES
|
||||
bytes. We need to take the additional field into account. We use
|
||||
@@ -85,148 +51,74 @@ int __have_no_getdents64;
|
||||
reasonable number of bytes to read. If we should be wrong, we can
|
||||
reset the file descriptor. In practice the kernel is limiting the
|
||||
amount of data returned much more then the reduced buffer size. */
|
||||
-int
|
||||
-getdents_wrap (int fd, char *buf, size_t nbytes)
|
||||
+int getdents_wrap(int fd, char *buf, size_t nbytes)
|
||||
{
|
||||
- struct dirent *dp;
|
||||
- off64_t last_offset = -1;
|
||||
- ssize_t retval;
|
||||
-
|
||||
- if (!__have_no_getdents64)
|
||||
- {
|
||||
- int saved_errno = errno;
|
||||
- char *kbuf = buf;
|
||||
- size_t kbytes = nbytes;
|
||||
- if (offsetof (struct dirent, d_name)
|
||||
- < offsetof (struct kernel_dirent64, d_name)
|
||||
- && nbytes <= sizeof (struct dirent))
|
||||
- {
|
||||
- kbytes = nbytes + offsetof (struct kernel_dirent64, d_name)
|
||||
- - offsetof (struct dirent, d_name);
|
||||
- kbuf = alloca(kbytes);
|
||||
+ struct dirent *dp;
|
||||
+ struct kernel_dirent64 *kdp;
|
||||
+ off64_t last_offset = -1;
|
||||
+ ssize_t retval;
|
||||
+ char *kbuf = buf;
|
||||
+ size_t kbytes = nbytes;
|
||||
+ const size_t size_diff = (offsetof(struct kernel_dirent64, d_name)
|
||||
+ - offsetof(struct dirent, d_name));
|
||||
+
|
||||
+ if (offsetof(struct dirent, d_name)
|
||||
+ < offsetof(struct kernel_dirent64, d_name)
|
||||
+ && nbytes <= sizeof(struct dirent)) {
|
||||
+ kbytes = nbytes + size_diff;
|
||||
+ kbuf = alloca(kbytes);
|
||||
}
|
||||
- retval = __SYS_GETDENTS64(fd, kbuf, kbytes);
|
||||
- if (retval != -1)
|
||||
- {
|
||||
- struct kernel_dirent64 *kdp;
|
||||
- const size_t size_diff = (offsetof (struct kernel_dirent64, d_name)
|
||||
- - offsetof (struct dirent, d_name));
|
||||
-
|
||||
- /* If the structure returned by the kernel is identical to what we
|
||||
- need, don't do any conversions. */
|
||||
- if (offsetof (struct dirent, d_name)
|
||||
- == offsetof (struct kernel_dirent64, d_name)
|
||||
- && sizeof (dp->d_ino) == sizeof (kdp->d_ino)
|
||||
- && sizeof (dp->d_off) == sizeof (kdp->d_off))
|
||||
- return retval;
|
||||
-
|
||||
- dp = (struct dirent *)buf;
|
||||
- kdp = (struct kernel_dirent64 *) kbuf;
|
||||
- while ((char *) kdp < kbuf + retval)
|
||||
- {
|
||||
- const size_t alignment = __alignof__ (struct dirent);
|
||||
- /* Since kdp->d_reclen is already aligned for the kernel
|
||||
- structure this may compute a value that is bigger
|
||||
- than necessary. */
|
||||
- size_t old_reclen = kdp->d_reclen;
|
||||
- size_t new_reclen = ((old_reclen - size_diff + alignment - 1)
|
||||
- & ~(alignment - 1));
|
||||
- uint64_t d_ino = kdp->d_ino;
|
||||
- int64_t d_off = kdp->d_off;
|
||||
- unsigned char d_type = kdp->d_type;
|
||||
|
||||
- DIRENT_SET_DP_INO (dp, d_ino);
|
||||
- dp->d_off = d_off;
|
||||
- if ((sizeof (dp->d_ino) != sizeof (kdp->d_ino)
|
||||
- && dp->d_ino != d_ino)
|
||||
- || (sizeof (dp->d_off) != sizeof (kdp->d_off)
|
||||
- && dp->d_off != d_off))
|
||||
- {
|
||||
- /* Overflow. If there was at least one entry
|
||||
- before this one, return them without error,
|
||||
- otherwise signal overflow. */
|
||||
- if (last_offset != -1)
|
||||
- {
|
||||
- lseek64 (fd, last_offset, SEEK_SET);
|
||||
- return (char *) dp - buf;
|
||||
- }
|
||||
- __set_errno (EOVERFLOW);
|
||||
- return -1;
|
||||
+ retval = syscall(SYS_getdents64, fd, kbuf, kbytes);
|
||||
+ if (retval != -1)
|
||||
+ return retval;
|
||||
+
|
||||
+ /* If the structure returned by the kernel is identical to what we
|
||||
+ need, don't do any conversions. */
|
||||
+ if (offsetof(struct dirent, d_name)
|
||||
+ == offsetof(struct kernel_dirent64, d_name)
|
||||
+ && sizeof(dp->d_ino) == sizeof(kdp->d_ino)
|
||||
+ && sizeof(dp->d_off) == sizeof(kdp->d_off))
|
||||
+ return retval;
|
||||
+
|
||||
+ dp = (struct dirent *)buf;
|
||||
+ kdp = (struct kernel_dirent64 *)kbuf;
|
||||
+ while ((char *)kdp < kbuf + retval) {
|
||||
+ const size_t alignment = __alignof__(struct dirent);
|
||||
+ /* Since kdp->d_reclen is already aligned for the kernel
|
||||
+ structure this may compute a value that is bigger
|
||||
+ than necessary. */
|
||||
+ size_t old_reclen = kdp->d_reclen;
|
||||
+ size_t new_reclen = ((old_reclen - size_diff + alignment - 1)
|
||||
+ & ~(alignment - 1));
|
||||
+ uint64_t d_ino = kdp->d_ino;
|
||||
+ int64_t d_off = kdp->d_off;
|
||||
+ unsigned char d_type = kdp->d_type;
|
||||
+
|
||||
+ dp->d_ino = d_ino;
|
||||
+ dp->d_off = d_off;
|
||||
+ if ((sizeof(dp->d_ino) != sizeof(kdp->d_ino))
|
||||
+ || (sizeof(dp->d_off) != sizeof(kdp->d_off))) {
|
||||
+ /* Overflow. If there was at least one entry
|
||||
+ before this one, return them without error,
|
||||
+ otherwise signal overflow. */
|
||||
+ if (last_offset != -1) {
|
||||
+ lseek64(fd, last_offset, SEEK_SET);
|
||||
+ return (char *)dp - buf;
|
||||
+ }
|
||||
+ errno = EOVERFLOW;
|
||||
+ return -1;
|
||||
}
|
||||
|
||||
- last_offset = d_off;
|
||||
- dp->d_reclen = new_reclen;
|
||||
- dp->d_type = d_type;
|
||||
- memmove (dp->d_name, kdp->d_name,
|
||||
- old_reclen - offsetof (struct kernel_dirent64, d_name));
|
||||
+ last_offset = d_off;
|
||||
+ dp->d_reclen = new_reclen;
|
||||
+ dp->d_type = d_type;
|
||||
+ memmove(dp->d_name, kdp->d_name,
|
||||
+ old_reclen - offsetof(struct kernel_dirent64, d_name));
|
||||
|
||||
- dp = (struct dirent *) ((char *) dp + new_reclen);
|
||||
- kdp = (struct kernel_dirent64 *) ((char *) kdp + old_reclen);
|
||||
- }
|
||||
-
|
||||
- return (char *) dp - buf;
|
||||
+ dp = (struct dirent *)((char *)dp + new_reclen);
|
||||
+ kdp = (struct kernel_dirent64 *)((char *)kdp + old_reclen);
|
||||
}
|
||||
|
||||
- __set_errno (saved_errno);
|
||||
- __have_no_getdents64 = 1;
|
||||
- }
|
||||
-
|
||||
- /* fallback to getdents */
|
||||
- {
|
||||
- size_t red_nbytes;
|
||||
- struct kernel_dirent *skdp, *kdp;
|
||||
- const size_t size_diff = (offsetof (struct dirent, d_name)
|
||||
- - offsetof (struct kernel_dirent, d_name));
|
||||
-
|
||||
- red_nbytes = MIN (nbytes
|
||||
- - ((nbytes / (offsetof (struct dirent, d_name) + 14))
|
||||
- * size_diff),
|
||||
- nbytes - size_diff);
|
||||
-
|
||||
- dp = (struct dirent *) buf;
|
||||
- skdp = kdp = alloca (red_nbytes);
|
||||
-
|
||||
- retval = __SYS_GETDENTS(fd, kdp, red_nbytes);
|
||||
- if (retval == -1)
|
||||
- return -1;
|
||||
-
|
||||
- while ((char *) kdp < (char *) skdp + retval)
|
||||
- {
|
||||
- const size_t alignment = __alignof__ (struct dirent);
|
||||
- /* Since kdp->d_reclen is already aligned for the kernel structure
|
||||
- this may compute a value that is bigger than necessary. */
|
||||
- size_t new_reclen = ((kdp->d_reclen + size_diff + alignment - 1)
|
||||
- & ~(alignment - 1));
|
||||
- if ((char *) dp + new_reclen > buf + nbytes)
|
||||
- {
|
||||
- /* Our heuristic failed. We read too many entries. Reset
|
||||
- the stream. */
|
||||
- assert (last_offset != -1);
|
||||
- lseek64 (fd, last_offset, SEEK_SET);
|
||||
-
|
||||
- if ((char *) dp == buf)
|
||||
- {
|
||||
- /* The buffer the user passed in is too small to hold even
|
||||
- one entry. */
|
||||
- __set_errno (EINVAL);
|
||||
- return -1;
|
||||
- }
|
||||
-
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- last_offset = kdp->d_off;
|
||||
- DIRENT_SET_DP_INO(dp, kdp->d_ino);
|
||||
- dp->d_off = kdp->d_off;
|
||||
- dp->d_reclen = new_reclen;
|
||||
- dp->d_type = DT_UNKNOWN;
|
||||
- memcpy (dp->d_name, kdp->d_name,
|
||||
- kdp->d_reclen - offsetof (struct kernel_dirent, d_name));
|
||||
-
|
||||
- dp = (struct dirent *) ((char *) dp + new_reclen);
|
||||
- kdp = (struct kernel_dirent *) (((char *) kdp) + kdp->d_reclen);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return (char *) dp - buf;
|
||||
+ return (char *)dp - buf;
|
||||
}
|
@ -1,214 +0,0 @@
|
||||
commit 9ed517b63df35876681e8883388fbf154afda0c1
|
||||
Author: Kyle McMartin <kmcmarti@redhat.com>
|
||||
Date: Tue Apr 8 10:33:57 2014 +1000
|
||||
|
||||
xfsdump: getdents.c: clean up ifdef-hell around sys_getdents
|
||||
|
||||
Remove the ifdef-hell imported from glibc around getdents64. Everything
|
||||
since 2.4.1 supports things properly and this seems like a sensible
|
||||
clean up, so lets just assume it exists and handle it by falling back
|
||||
if not.
|
||||
|
||||
Additionally, if the old getdents syscall doesn't exist, just stub out
|
||||
the actual syscall and return ENOSYS.
|
||||
|
||||
Signed-off-by: Kyle McMartin <kmcmarti@redhat.com>
|
||||
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
||||
Signed-off-by: Dave Chinner <david@fromorbit.com>
|
||||
|
||||
diff --git a/common/getdents.c b/common/getdents.c
|
||||
index e9ba25a..49d0d03 100644
|
||||
--- a/common/getdents.c
|
||||
+++ b/common/getdents.c
|
||||
@@ -35,44 +35,6 @@
|
||||
|
||||
#include <linux/posix_types.h>
|
||||
|
||||
-/* Copied from kernel-features.h for __ASSUME_GETDENTS64_SYSCALL */
|
||||
-#ifndef __LINUX_KERNEL_VERSION
|
||||
-/* We assume the worst; all kernels should be supported. */
|
||||
-# define __LINUX_KERNEL_VERSION 0
|
||||
-#endif
|
||||
-/* The getdents64 syscall was introduced in 2.4.0-test7. We test for
|
||||
- 2.4.1 for the earliest version we know the syscall is available. */
|
||||
-#if __LINUX_KERNEL_VERSION >= 132097
|
||||
-# define __ASSUME_GETDENTS64_SYSCALL 1
|
||||
-#endif
|
||||
-/* There are an infinite number of PA-RISC kernel versions numbered
|
||||
- 2.4.0. But they've not really been released as such. We require
|
||||
- and expect the final version here. */
|
||||
-#ifdef __hppa__
|
||||
-# define __ASSUME_GETDENTS64_SYSCALL 1
|
||||
-#endif
|
||||
-
|
||||
-#ifndef __set_errno
|
||||
-#define __set_errno(e) (errno = (e))
|
||||
-#endif
|
||||
-
|
||||
-
|
||||
-#ifdef __NR_getdents64
|
||||
-# ifndef __ASSUME_GETDENTS64_SYSCALL
|
||||
-# ifndef __GETDENTS
|
||||
-/* The variable is shared between all *getdents* calls. */
|
||||
-int __have_no_getdents64;
|
||||
-# else
|
||||
-extern int __have_no_getdents64;
|
||||
-# endif
|
||||
-# endif
|
||||
-/* Earlier versions of glibc don't define SYS_getdents64 at all */
|
||||
-# ifndef SYS_getdents64
|
||||
-# define SYS_getdents64 __NR_getdents64
|
||||
-# endif
|
||||
-#endif
|
||||
-
|
||||
-
|
||||
/* For Linux we need a special version of this file since the
|
||||
definition of `struct dirent' is not the same for the kernel and
|
||||
the libc. There is one additional field which might be introduced
|
||||
@@ -97,11 +59,22 @@ struct kernel_dirent64
|
||||
char d_name[256];
|
||||
};
|
||||
|
||||
-#ifndef DIRENT_TYPE
|
||||
-# define DIRENT_TYPE struct dirent
|
||||
+#define DIRENT_SET_DP_INO(dp, value) (dp)->d_ino = (value)
|
||||
+
|
||||
+#define __set_errno(e) (errno = (e))
|
||||
+
|
||||
+int __have_no_getdents64;
|
||||
+
|
||||
+#ifdef __NR_getdents64
|
||||
+# define __SYS_GETDENTS64(fd, buf, len) (syscall(SYS_getdents64, fd, buf, len))
|
||||
+#else
|
||||
+# define __SYS_GETDENTS64(fd, buf, len) ({ __set_errno(ENOSYS); -1; })
|
||||
#endif
|
||||
-#ifndef DIRENT_SET_DP_INO
|
||||
-# define DIRENT_SET_DP_INO(dp, value) (dp)->d_ino = (value)
|
||||
+
|
||||
+#ifdef __NR_getdents
|
||||
+# define __SYS_GETDENTS(fd, buf, len) (syscall(SYS_getdents, fd, buf, len))
|
||||
+#else
|
||||
+# define __SYS_GETDENTS(fd, buf, len) ({ __set_errno(ENOSYS); -1; })
|
||||
#endif
|
||||
|
||||
/* The problem here is that we cannot simply read the next NBYTES
|
||||
@@ -115,50 +88,43 @@ struct kernel_dirent64
|
||||
int
|
||||
getdents_wrap (int fd, char *buf, size_t nbytes)
|
||||
{
|
||||
- DIRENT_TYPE *dp;
|
||||
+ struct dirent *dp;
|
||||
off64_t last_offset = -1;
|
||||
ssize_t retval;
|
||||
|
||||
-#ifdef __NR_getdents64
|
||||
-# ifndef __ASSUME_GETDENTS64_SYSCALL
|
||||
if (!__have_no_getdents64)
|
||||
-# endif
|
||||
{
|
||||
-# ifndef __ASSUME_GETDENTS64_SYSCALL
|
||||
int saved_errno = errno;
|
||||
-# endif
|
||||
char *kbuf = buf;
|
||||
size_t kbytes = nbytes;
|
||||
- if (offsetof (DIRENT_TYPE, d_name)
|
||||
+ if (offsetof (struct dirent, d_name)
|
||||
< offsetof (struct kernel_dirent64, d_name)
|
||||
- && nbytes <= sizeof (DIRENT_TYPE))
|
||||
+ && nbytes <= sizeof (struct dirent))
|
||||
{
|
||||
kbytes = nbytes + offsetof (struct kernel_dirent64, d_name)
|
||||
- - offsetof (DIRENT_TYPE, d_name);
|
||||
+ - offsetof (struct dirent, d_name);
|
||||
kbuf = alloca(kbytes);
|
||||
}
|
||||
- retval = syscall(SYS_getdents64, fd, kbuf, kbytes);
|
||||
-# ifndef __ASSUME_GETDENTS64_SYSCALL
|
||||
- if (retval != -1 && errno != -EINVAL)
|
||||
-# endif
|
||||
+ retval = __SYS_GETDENTS64(fd, kbuf, kbytes);
|
||||
+ if (retval != -1)
|
||||
{
|
||||
struct kernel_dirent64 *kdp;
|
||||
const size_t size_diff = (offsetof (struct kernel_dirent64, d_name)
|
||||
- - offsetof (DIRENT_TYPE, d_name));
|
||||
+ - offsetof (struct dirent, d_name));
|
||||
|
||||
/* If the structure returned by the kernel is identical to what we
|
||||
need, don't do any conversions. */
|
||||
- if (offsetof (DIRENT_TYPE, d_name)
|
||||
+ if (offsetof (struct dirent, d_name)
|
||||
== offsetof (struct kernel_dirent64, d_name)
|
||||
&& sizeof (dp->d_ino) == sizeof (kdp->d_ino)
|
||||
&& sizeof (dp->d_off) == sizeof (kdp->d_off))
|
||||
return retval;
|
||||
|
||||
- dp = (DIRENT_TYPE *)buf;
|
||||
+ dp = (struct dirent *)buf;
|
||||
kdp = (struct kernel_dirent64 *) kbuf;
|
||||
while ((char *) kdp < kbuf + retval)
|
||||
{
|
||||
- const size_t alignment = __alignof__ (DIRENT_TYPE);
|
||||
+ const size_t alignment = __alignof__ (struct dirent);
|
||||
/* Since kdp->d_reclen is already aligned for the kernel
|
||||
structure this may compute a value that is bigger
|
||||
than necessary. */
|
||||
@@ -194,41 +160,39 @@ getdents_wrap (int fd, char *buf, size_t nbytes)
|
||||
memmove (dp->d_name, kdp->d_name,
|
||||
old_reclen - offsetof (struct kernel_dirent64, d_name));
|
||||
|
||||
- dp = (DIRENT_TYPE *) ((char *) dp + new_reclen);
|
||||
+ dp = (struct dirent *) ((char *) dp + new_reclen);
|
||||
kdp = (struct kernel_dirent64 *) ((char *) kdp + old_reclen);
|
||||
}
|
||||
|
||||
return (char *) dp - buf;
|
||||
}
|
||||
|
||||
-# ifndef __ASSUME_GETDENTS64_SYSCALL
|
||||
__set_errno (saved_errno);
|
||||
__have_no_getdents64 = 1;
|
||||
-# endif
|
||||
}
|
||||
-#endif
|
||||
+
|
||||
+ /* fallback to getdents */
|
||||
{
|
||||
size_t red_nbytes;
|
||||
struct kernel_dirent *skdp, *kdp;
|
||||
- const size_t size_diff = (offsetof (DIRENT_TYPE, d_name)
|
||||
+ const size_t size_diff = (offsetof (struct dirent, d_name)
|
||||
- offsetof (struct kernel_dirent, d_name));
|
||||
|
||||
red_nbytes = MIN (nbytes
|
||||
- - ((nbytes / (offsetof (DIRENT_TYPE, d_name) + 14))
|
||||
+ - ((nbytes / (offsetof (struct dirent, d_name) + 14))
|
||||
* size_diff),
|
||||
nbytes - size_diff);
|
||||
|
||||
- dp = (DIRENT_TYPE *) buf;
|
||||
+ dp = (struct dirent *) buf;
|
||||
skdp = kdp = alloca (red_nbytes);
|
||||
|
||||
- retval = syscall(SYS_getdents, fd, kdp, red_nbytes);
|
||||
-
|
||||
+ retval = __SYS_GETDENTS(fd, kdp, red_nbytes);
|
||||
if (retval == -1)
|
||||
return -1;
|
||||
|
||||
while ((char *) kdp < (char *) skdp + retval)
|
||||
{
|
||||
- const size_t alignment = __alignof__ (DIRENT_TYPE);
|
||||
+ const size_t alignment = __alignof__ (struct dirent);
|
||||
/* Since kdp->d_reclen is already aligned for the kernel structure
|
||||
this may compute a value that is bigger than necessary. */
|
||||
size_t new_reclen = ((kdp->d_reclen + size_diff + alignment - 1)
|
||||
@@ -259,7 +223,7 @@ getdents_wrap (int fd, char *buf, size_t nbytes)
|
||||
memcpy (dp->d_name, kdp->d_name,
|
||||
kdp->d_reclen - offsetof (struct kernel_dirent, d_name));
|
||||
|
||||
- dp = (DIRENT_TYPE *) ((char *) dp + new_reclen);
|
||||
+ dp = (struct dirent *) ((char *) dp + new_reclen);
|
||||
kdp = (struct kernel_dirent *) (((char *) kdp) + kdp->d_reclen);
|
||||
}
|
||||
}
|
30
xfsdump.spec
30
xfsdump.spec
@ -1,17 +1,19 @@
|
||||
Summary: Administrative utilities for the XFS filesystem
|
||||
Name: xfsdump
|
||||
Version: 3.1.9
|
||||
Release: 6%{?dist}
|
||||
Summary: Backup and restore utilities for the XFS filesystem
|
||||
Name: xfsdump
|
||||
Version: 3.1.10
|
||||
Release: 1%{?dist}
|
||||
# Licensing based on generic "GNU GENERAL PUBLIC LICENSE"
|
||||
# in source, with no mention of version.
|
||||
License: GPL+
|
||||
URL: http://oss.sgi.com/projects/xfs/
|
||||
Source0: http://kernel.org/pub/linux/utils/fs/xfs/%{name}/%{name}-%{version}.tar.xz
|
||||
BuildRequires: make
|
||||
BuildRequires: gcc
|
||||
BuildRequires: libtool, gettext, gawk
|
||||
BuildRequires: xfsprogs-devel, libuuid-devel, libattr-devel ncurses-devel
|
||||
Requires: xfsprogs >= 2.6.30, attr >= 2.0.0
|
||||
License: GPL+
|
||||
Source0: http://kernel.org/pub/linux/utils/fs/xfs/%{name}/%{name}-%{version}.tar.xz
|
||||
Source1: http://kernel.org/pub/linux/utils/fs/xfs/%{name}/%{name}-%{version}.tar.sign
|
||||
Source2: https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git/plain/keys/20AE1692E13DDEE0.asc
|
||||
BuildRequires: make
|
||||
BuildRequires: gcc
|
||||
BuildRequires: libtool, gettext, gawk
|
||||
BuildRequires: xfsprogs-devel, libuuid-devel, libattr-devel ncurses-devel
|
||||
BuildRequires: gnupg2, xz
|
||||
Requires: xfsprogs >= 2.6.30, attr >= 2.0.0
|
||||
|
||||
%description
|
||||
The xfsdump package contains xfsdump, xfsrestore and a number of
|
||||
@ -31,6 +33,7 @@ be layered on top of the full backup. Single files and directory
|
||||
subtrees may be restored from full or partial backups.
|
||||
|
||||
%prep
|
||||
xzcat '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=-
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
@ -60,6 +63,9 @@ mkdir -p $RPM_BUILD_ROOT/%{_sharedstatedir}/xfsdump/inventory
|
||||
%{_sharedstatedir}/xfsdump/inventory
|
||||
|
||||
%changelog
|
||||
* Fri Feb 11 2022 Eric Sandeen <sandeen@redhat.com> 3.1.10-1
|
||||
- New upstream release
|
||||
|
||||
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.9-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user