Re: 3.4.0beta2 crash in conservative merge?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Emmanuel Dreyfus <manu@xxxxxxxxxx> wrote:

> See my other post: it crashes on line 818, because local->fd is NULL..
> Since it was used at line 804 without crashing, it must be a race
> conditon.

I do not really know what I am doing, but I am trying this:

--- xlators/cluster/dht/src/dht-helper.c.orig   2013-05-26 09:29:52.000000000 +0200
+++ xlators/cluster/dht/src/dht-helper.c        2013-05-26 09:30:47.000000000 +0200
@@ -798,17 +798,8 @@
 
         local->cached_subvol = dst_node;
         ret = 0;
 
-        /* once we detect the migration complete, the fd-ctx is no more
-           required.. delete the ctx, and do one extra 'fd_unref' for open fd */
-        ret = fd_ctx_del (local->fd, this, NULL);
-        if (!ret) {
-                fd_unref (local->fd);
-                ret = 0;
-                goto out;
-        }
-
         /* perform open as root:root. There is window between linkfile
          * creation(root:root) and setattr with the correct uid/gid
          */
         SYNCTASK_SETID(0, 0);
@@ -834,8 +825,17 @@
                         local->loc.path, dst_node->name);
                 goto out;
         }
 
+        /* once we detect the migration complete, the fd-ctx is no more
+           required.. delete the ctx, and do one extra 'fd_unref' for open fd */
+        ret = fd_ctx_del (local->fd, this, NULL);
+        if (!ret) {
+                fd_unref (local->fd);
+                ret = 0;
+                goto out;
+        }
+
         ret = 0;
 out:
 
         return ret;
-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu@xxxxxxxxxx



[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux