diff options
Diffstat (limited to 'fs/ceph/inode.c')
-rw-r--r-- | fs/ceph/inode.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index 26f883c275e8..85b4d2ffdeba 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c | |||
@@ -733,6 +733,10 @@ no_change: | |||
733 | __ceph_get_fmode(ci, cap_fmode); | 733 | __ceph_get_fmode(ci, cap_fmode); |
734 | spin_unlock(&inode->i_lock); | 734 | spin_unlock(&inode->i_lock); |
735 | } | 735 | } |
736 | } else if (cap_fmode >= 0) { | ||
737 | pr_warning("mds issued no caps on %llx.%llx\n", | ||
738 | ceph_vinop(inode)); | ||
739 | __ceph_get_fmode(ci, cap_fmode); | ||
736 | } | 740 | } |
737 | 741 | ||
738 | /* update delegation info? */ | 742 | /* update delegation info? */ |
@@ -997,6 +1001,10 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req, | |||
997 | dn, dn->d_name.len, dn->d_name.name); | 1001 | dn, dn->d_name.len, dn->d_name.name); |
998 | dout("fill_trace doing d_move %p -> %p\n", | 1002 | dout("fill_trace doing d_move %p -> %p\n", |
999 | req->r_old_dentry, dn); | 1003 | req->r_old_dentry, dn); |
1004 | |||
1005 | /* d_move screws up d_subdirs order */ | ||
1006 | ceph_i_clear(dir, CEPH_I_COMPLETE); | ||
1007 | |||
1000 | d_move(req->r_old_dentry, dn); | 1008 | d_move(req->r_old_dentry, dn); |
1001 | dout(" src %p '%.*s' dst %p '%.*s'\n", | 1009 | dout(" src %p '%.*s' dst %p '%.*s'\n", |
1002 | req->r_old_dentry, | 1010 | req->r_old_dentry, |