diff --git a/[refs] b/[refs] index e1c2f0ff100e..bb90579b2316 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e8a7498715181ece36130335536e13733a5c3187 +refs/heads/master: 1b7facc41b42c2ab904b2f88b64b1f8ca0ca6cb7 diff --git a/trunk/fs/ceph/inode.c b/trunk/fs/ceph/inode.c index 49a0935c4390..aa22a0bce52f 100644 --- a/trunk/fs/ceph/inode.c +++ b/trunk/fs/ceph/inode.c @@ -675,7 +675,8 @@ static int fill_inode(struct inode *inode, /* set dir completion flag? */ if (ci->i_files == 0 && ci->i_subdirs == 0 && ceph_snap(inode) == CEPH_NOSNAP && - (le32_to_cpu(info->cap.caps) & CEPH_CAP_FILE_SHARED)) { + (le32_to_cpu(info->cap.caps) & CEPH_CAP_FILE_SHARED) && + (ci->i_ceph_flags & CEPH_I_COMPLETE) == 0) { dout(" marking %p complete (empty)\n", inode); ci->i_ceph_flags |= CEPH_I_COMPLETE; ci->i_max_offset = 2;