ocfs2: avoid blocking in ocfs2_mark_lockres_freeing() in downconvert thread
[deliverable/linux.git] / fs / ocfs2 / inode.c
index 809b5d57a6b89e0f8ae2959f424667d6d97bda4e..d437f3ba90b0760b788db1664120941e9e9891a3 100644 (file)
@@ -1080,6 +1080,7 @@ static void ocfs2_clear_inode(struct inode *inode)
 {
        int status;
        struct ocfs2_inode_info *oi = OCFS2_I(inode);
+       struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
 
        clear_inode(inode);
        trace_ocfs2_clear_inode((unsigned long long)oi->ip_blkno,
@@ -1096,9 +1097,9 @@ static void ocfs2_clear_inode(struct inode *inode)
 
        /* Do these before all the other work so that we don't bounce
         * the downconvert thread while waiting to destroy the locks. */
-       ocfs2_mark_lockres_freeing(&oi->ip_rw_lockres);
-       ocfs2_mark_lockres_freeing(&oi->ip_inode_lockres);
-       ocfs2_mark_lockres_freeing(&oi->ip_open_lockres);
+       ocfs2_mark_lockres_freeing(osb, &oi->ip_rw_lockres);
+       ocfs2_mark_lockres_freeing(osb, &oi->ip_inode_lockres);
+       ocfs2_mark_lockres_freeing(osb, &oi->ip_open_lockres);
 
        ocfs2_resv_discard(&OCFS2_SB(inode->i_sb)->osb_la_resmap,
                           &oi->ip_la_data_resv);
This page took 0.02618 seconds and 5 git commands to generate.