]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
ceph: add a bit more info when BUG'ing due to parent changing
authorJeff Layton <jlayton@redhat.com>
Wed, 30 Nov 2016 20:56:48 +0000 (15:56 -0500)
committerJeff Layton <jlayton@redhat.com>
Fri, 2 Dec 2016 14:16:25 +0000 (09:16 -0500)
Signed-off-by: Jeff Layton <jlayton@redhat.com>
fs/ceph/inode.c

index ef4d046473256009843b6b4c82e1b5b1e451b02d..89b01fa537fc5ac76e7fa3514850b2633bf48cfe 100644 (file)
@@ -1260,13 +1260,20 @@ retry_lookup:
                 * mknod symlink mkdir  : null -> new inode
                 * unlink               : linked -> null
                 */
-               struct inode *dir = req->r_locked_dir;
+               struct inode *parent, *dir = req->r_locked_dir;
                struct dentry *dn = req->r_dentry;
                bool have_dir_cap, have_lease;
 
                BUG_ON(!dn);
                BUG_ON(!dir);
-               BUG_ON(d_inode(dn->d_parent) != dir);
+               parent = d_inode(dn->d_parent);
+
+               if (unlikely(parent != dir)) {
+                       pr_err("%s: dir=%p parent=%p op=%d\n", __func__, dir,
+                                       parent, req->r_op);
+                       BUG();
+               }
+
                BUG_ON(ceph_ino(dir) !=
                       le64_to_cpu(rinfo->diri.in->ino));
                BUG_ON(ceph_snap(dir) !=