diff options
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/build.h | 1 | ||||
-rw-r--r-- | src/shared/missing.h | 10 | ||||
-rw-r--r-- | src/shared/udev-util.h | 2 | ||||
-rw-r--r-- | src/shared/util.c | 65 | ||||
-rw-r--r-- | src/shared/util.h | 2 |
5 files changed, 1 insertions, 79 deletions
diff --git a/src/shared/build.h b/src/shared/build.h index b0a5a72467..653a505e68 100644 --- a/src/shared/build.h +++ b/src/shared/build.h @@ -130,7 +130,6 @@ _IMA_FEATURE_ " " \ _APPARMOR_FEATURE_ " " \ _SMACK_FEATURE_ " " \ - _SYSVINIT_FEATURE_ " " \ _LIBCRYPTSETUP_FEATURE_ " " \ _GCRYPT_FEATURE_ " " \ _GNUTLS_FEATURE_ " " \ diff --git a/src/shared/missing.h b/src/shared/missing.h index ca670cea43..4abd0232f8 100644 --- a/src/shared/missing.h +++ b/src/shared/missing.h @@ -930,13 +930,3 @@ static inline int renameat2(int oldfd, const char *oldname, int newfd, const cha #ifndef RENAME_NOREPLACE #define RENAME_NOREPLACE (1 << 0) #endif - -#if !HAVE_DECL_KCMP -static inline int kcmp(pid_t pid1, pid_t pid2, int type, unsigned long idx1, unsigned long idx2) { - return syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2); -} -#endif - -#ifndef KCMP_FILE -#define KCMP_FILE 0 -#endif diff --git a/src/shared/udev-util.h b/src/shared/udev-util.h index 5f09ce181f..0a7741afef 100644 --- a/src/shared/udev-util.h +++ b/src/shared/udev-util.h @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ -#include "udev.h" +#include "libudev.h" #include "util.h" DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev*, udev_unref); diff --git a/src/shared/util.c b/src/shared/util.c index 605fffcb7a..72984735ce 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -7794,71 +7794,6 @@ int fd_setcrtime(int fd, usec_t usec) { return 0; } -int same_fd(int a, int b) { - struct stat sta, stb; - pid_t pid; - int r, fa, fb; - - assert(a >= 0); - assert(b >= 0); - - /* Compares two file descriptors. Note that semantics are - * quite different depending on whether we have kcmp() or we - * don't. If we have kcmp() this will only return true for - * dup()ed file descriptors, but not otherwise. If we don't - * have kcmp() this will also return true for two fds of the same - * file, created by separate open() calls. Since we use this - * call mostly for filtering out duplicates in the fd store - * this difference hopefully doesn't matter too much. */ - - if (a == b) - return true; - - /* Try to use kcmp() if we have it. */ - pid = getpid(); - r = kcmp(pid, pid, KCMP_FILE, a, b); - if (r == 0) - return true; - if (r > 0) - return false; - if (errno != ENOSYS) - return -errno; - - /* We don't have kcmp(), use fstat() instead. */ - if (fstat(a, &sta) < 0) - return -errno; - - if (fstat(b, &stb) < 0) - return -errno; - - if ((sta.st_mode & S_IFMT) != (stb.st_mode & S_IFMT)) - return false; - - /* We consider all device fds different, since two device fds - * might refer to quite different device contexts even though - * they share the same inode and backing dev_t. */ - - if (S_ISCHR(sta.st_mode) || S_ISBLK(sta.st_mode)) - return false; - - if (sta.st_dev != stb.st_dev || sta.st_ino != stb.st_ino) - return false; - - /* The fds refer to the same inode on disk, let's also check - * if they have the same fd flags. This is useful to - * distuingish the read and write side of a pipe created with - * pipe(). */ - fa = fcntl(a, F_GETFL); - if (fa < 0) - return -errno; - - fb = fcntl(b, F_GETFL); - if (fb < 0) - return -errno; - - return fa == fb; -} - int chattr_fd(int fd, bool b, unsigned mask) { unsigned old_attr, new_attr; diff --git a/src/shared/util.h b/src/shared/util.h index 124c7c06d4..11cc10ba30 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -1054,8 +1054,6 @@ int fd_getcrtime(int fd, usec_t *usec); int path_getcrtime(const char *p, usec_t *usec); int fd_getcrtime_at(int dirfd, const char *name, usec_t *usec, int flags); -int same_fd(int a, int b); - int chattr_fd(int fd, bool b, unsigned mask); int chattr_path(const char *p, bool b, unsigned mask); int change_attr_fd(int fd, unsigned value, unsigned mask); |