From 3a065d4a707a538d34b0394dd699b09f5c80e658 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Tue, 14 Aug 2012 15:53:35 -0700 Subject: [PATCH] pop (CONFLICT) --- meta | 4 ++-- patches/fstat | 43 +++---------------------------------------- 2 files changed, 5 insertions(+), 42 deletions(-) diff --git a/meta b/meta index e8715cd0..4002d9bd 100644 --- a/meta +++ b/meta @@ -1,5 +1,5 @@ Version: 1 -Previous: 421b6ef2ff2856c851bf273270215cddebd86e2a +Previous: 03b25dd4da2a27dee6fd29106aefe65ba1fa0b6b Head: ab2929d76ed7d07fefa17c73a3ee291dab51db5e Applied: real-close: 3409f8d6af187d25c63a5d1f8ee8bff5f14555e2 @@ -8,9 +8,9 @@ Applied: fork-pass: 9d661d643b62858fe119794e0ca41b5575faa0ce fork-connect: a50a83fb4e574a2cc435bba1abf6f9df3d0cc7a6 sendfile: 9073427ddddfa2f7c93d0ac4a6da9844cb7d2960 + fstat: ab2929d76ed7d07fefa17c73a3ee291dab51db5e Unapplied: dbg-out: 04273ee712db4d53efb390462c1b738bb54a57df - fstat: a62c653906870422edef5f6388dac9f76c953e35 dbg: 0c269855776d3001e37da8c8afe283c20e1d6cd6 waitall-buggy: c49c6b56c55385774065f5aa2704078e6ae0ceb8 rs-1sge: 8ec392829399dec7ed5c608b8697a482e5faa2de diff --git a/patches/fstat b/patches/fstat index 9aa658d3..9e5aafa1 100644 --- a/patches/fstat +++ b/patches/fstat @@ -1,5 +1,5 @@ -Bottom: 3ea2748a5c41b11a2e7033c56bddd938d2770b6c -Top: 6bbb92f637582964eea7a287f91549c84da9571a +Bottom: 03b5e28f4ac8f642409cf46b6a2bfc0da609ec5d +Top: 03b5e28f4ac8f642409cf46b6a2bfc0da609ec5d Author: Sean Hefty Date: 2012-08-07 09:37:24 -0700 @@ -12,41 +12,4 @@ Signed-off-by: Sean Hefty --- -diff --git a/src/preload.c b/src/preload.c -index b18d310..53f8543 100644 ---- a/src/preload.c -+++ b/src/preload.c -@@ -84,6 +84,7 @@ struct socket_calls { - void *optval, socklen_t *optlen); - int (*fcntl)(int socket, int cmd, ... /* arg */); - int (*dup2)(int oldfd, int newfd); -+ int (*fxstat64)(int ver, int fd, struct stat64 *buf); - }; - - static struct socket_calls real; -@@ -259,6 +260,7 @@ static void init_preload(void) - real.getsockopt = dlsym(RTLD_NEXT, "getsockopt"); - real.fcntl = dlsym(RTLD_NEXT, "fcntl"); - real.dup2 = dlsym(RTLD_NEXT, "dup2"); -+ real.fxstat64 = dlsym(RTLD_NEXT, "__fxstat64"); - - rs.socket = dlsym(RTLD_DEFAULT, "rsocket"); - rs.bind = dlsym(RTLD_DEFAULT, "rbind"); -@@ -961,3 +963,17 @@ int dup2(int oldfd, int newfd) - atomic_inc(&oldfdi->refcnt); - return newfd; - } -+ -+int __fxstat64(int ver, int socket, struct stat64 *buf) -+{ -+ int fd, ret; -+ -+ if (fd_get(socket, &fd) == fd_rsocket) { -+ ret = real.fxstat64(ver, socket, buf); -+ if (!ret) -+ buf->st_mode = (buf->st_mode & ~S_IFMT) | __S_IFSOCK; -+ } else { -+ ret = real.fxstat64(ver, fd, buf); -+ } -+ return ret; -+} + -- 2.41.0