ceph: use i_release_count to indicate dir's completeness
[firefly-linux-kernel-4.4.55.git] / fs / ceph / mds_client.c
index 600d770d70f7a6725bf72d94e952d52aa210c02b..0db6f5206d11416b7874cf7f2243d7b42cf71c8c 100644 (file)
@@ -2034,20 +2034,16 @@ out:
 }
 
 /*
- * Invalidate dir I_COMPLETE, dentry lease state on an aborted MDS
+ * Invalidate dir's completeness, dentry lease state on an aborted MDS
  * namespace request.
  */
 void ceph_invalidate_dir_request(struct ceph_mds_request *req)
 {
        struct inode *inode = req->r_locked_dir;
-       struct ceph_inode_info *ci = ceph_inode(inode);
 
-       dout("invalidate_dir_request %p (I_COMPLETE, lease(s))\n", inode);
-       spin_lock(&ci->i_ceph_lock);
-       ci->i_ceph_flags &= ~CEPH_I_COMPLETE;
-       ci->i_release_count++;
-       spin_unlock(&ci->i_ceph_lock);
+       dout("invalidate_dir_request %p (complete, lease(s))\n", inode);
 
+       ceph_dir_clear_complete(inode);
        if (req->r_dentry)
                ceph_invalidate_dentry_lease(req->r_dentry);
        if (req->r_old_dentry)