1. 29 Jul, 2015 1 commit
    • Cyrill Gorcunov's avatar
      sk-unix: Add trivial name resolver for sockets with relative names · 8788054e
      Cyrill Gorcunov authored
      Unix sockets may be created with non-absolute (relative) path
      (when kernel creates one it always use AT_FDCWD for name resolving),
      So when we collect sockets we see them as having names without leading
      slash.
      
      In common cases for such sockets application doesn't change own
      working directory after that but this is not always the true.
      So we need to invent some name resolver. The good candidate is
      IRMAP cache but after a number of testings I found that it might
      slow down performance very dramatically. Thus we need some more
      intelligent way here.
      
      For a while, for common applications such as postfix, fetching
      dumpee working directory and root is enough. So here what we do
      
       - when socket get collected from diag interface we remember
         its relative name parameters (device and inode) but postprone
         name resolving to not bring perf penalty until really needed
      
       - when we meet a socket to dump with relative name assigned we
         try to use $cwd/name and $root/name for this socket to check
         if it has been created in those directories. On success we
         simply remember the directory in image and when restore such
         socket call for chdir helper to change working dir and generate
         relative name
      
      v2:
      
       - Use new unlink_stale to remove sockets we're to restore
       - Use *at() helpers once we're changed working dir in bind_unix_sk
       - Add more debug ouput
      Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
      Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
      8788054e
  2. 28 Jul, 2015 13 commits
  3. 24 Jul, 2015 2 commits
  4. 23 Jul, 2015 7 commits
  5. 21 Jul, 2015 6 commits
  6. 16 Jul, 2015 7 commits
  7. 15 Jul, 2015 4 commits