[Ocfs2-devel] [PATCH 1/2] ocfs2: clear links count in ocfs2_mknod() if an error occurs

Wangyan wangyan122 at huawei.com
Wed May 27 17:43:27 PDT 2020


Yes, I think these fixes should be backported into -stable kernels.

On 2020/5/28 6:52, Andrew Morton wrote:
> On Tue, 26 May 2020 15:45:35 +0800 Wangyan <wangyan122 at huawei.com> wrote:
> 
>> In this condition, the inode can not be wiped when error happened.
>> ocfs2_mkdir()
>>   ->ocfs2_mknod()
>>     ->ocfs2_mknod_locked()
>>       ->__ocfs2_mknod_locked()
>>         ->ocfs2_set_links_count() // i_links_count is 2
>>     -> ... // an error accrue, goto roll_back or leave.
>>     ->ocfs2_commit_trans()
>>     ->iput(inode)
>>       ->evict()
>>         ->ocfs2_evict_inode()
>>           ->ocfs2_delete_inode()
>>             ->ocfs2_inode_lock()
>>               ->ocfs2_inode_lock_update()
>>                 ->ocfs2_refresh_inode()
>>                   ->set_nlink();    // inode->i_nlink is 2 now.
>>             /* if wipe is 0, it will goto bail_unlock_inode */
>>             ->ocfs2_query_inode_wipe()
>>               ->if (inode->i_nlink) return; // wipe is 0.
>>             /* inode can not be wiped */
>>             ->ocfs2_wipe_inode()
>> So, we need clear links before the transaction committed.
> 
> Do we think these fixes should be backported into -stable kernels?
> 
> 
> 
> .
> 




More information about the Ocfs2-devel mailing list