inode节点clear操作

    xiaoxiao2021-03-25  68

    inode 节点clear是把节点设置处于一种状态,即I_FREEING | I_CLEAR  * I_FREEING Set when inode is about to be freed but still has dirty  * pages or buffers attached or the inode itself is still  * dirty.  * I_CLEAR Added by clear_inode().  In this state the inode is  * clean and can be destroyed.  Inode keeps I_FREEING. void clear_inode(struct inode *inode) { might_sleep(); /* * We have to cycle tree_lock here because reclaim can be still in the * process of removing the last page (in __delete_from_page_cache()) * and we must not free mapping under it. */ spin_lock_irq(&inode->i_data.tree_lock); BUG_ON(inode->i_data.nrpages); BUG_ON(inode->i_data.nrexceptional); spin_unlock_irq(&inode->i_data.tree_lock); BUG_ON(!list_empty(&inode->i_data.private_list)); BUG_ON(!(inode->i_state & I_FREEING)); BUG_ON(inode->i_state & I_CLEAR); BUG_ON(!list_empty(&inode->i_wb_list)); /* don't need i_lock here, no concurrent mods to i_state */ inode->i_state = I_FREEING | I_CLEAR; } EXPORT_SYMBOL(clear_inode);
    转载请注明原文地址: https://ju.6miu.com/read-36968.html

    最新回复(0)